一个偶现bug排除

一个bug,程序大多数时候都好的,但每天会遇到几次crash。
先是锁定发crash的调用,对调用里可能出问题的地方,加log。
根据log锁定发生crash的函数,加log。
找到crash直接原因,函数里使用的静态变量,在crash时有异常。
在该静态变量前后加了同类型类似名称的静态变量,crash时它们也有异常。
判断应该是静态变量内存被破坏了,应该是别的静态变量访问越界导致。
在调试中发现,调用另一个函数后,再调用上面函数,crash必现。
后面就好办了,在另一个函数里,有个buffer是个char数组,是函数内的静态变量,使用时没有检查越界,如果越界,就破坏了其他变量了。
重写该函数,问题解决。
这个bug解决中还遇到一个问题,在windows上调试没有问题,在Linux上运行就有问题,原来是处理的字符串,在windows上用的GB编码,在Linux上用utf-8编码,Linux上字符串更长,所以越界发生了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值