bug调式法

本文详细解析了在编程过程中遇到的常见调试方法及如何有效处理异常情况,包括使用二分法定位问题代码,对模块进行独立排查,并具体分析了一个实例中因构造函数操作不当导致的内存访问错误。文章深入剖析了这种错误的成因,揭示了其对调试过程的干扰,并提供了有效的解决方案。
 bug调式法
 31 分析方法:
 32 1:对主干分支的代码进行会滚排查,二分法定位出现问题的日期并揪出问题代码
 33 2:对程序的各个模块进行分开排查,对出现问题的模块进行代码注释定位
 34 
 35 结果:
 36     发现在写png图片的时候 constructor对buffer的大小进行了memset,但是写图片>    的时候没有做好异常处理,有y坐标是负数的少数情况
 37     导致buffer指针写越界操作了stl容器的内容
 38     这种情况很容易导致定位问题目标不准确结果查了很长的时间未果,也不好定位原
    因
 39     针对这种情况 查看堆栈里面的指针信息 就会出现类似0x80不可读写等的指针信息
    相当诡异,其实是栈内容被修改导致的
 40     所以针对该问题 一般有两种情况导致
 41     1是下标越界
 42     2指针越界
 43     对于堆或者栈 只要写操作没有到某个问题 就算你误操作也被蒙在鼓励,比较恶心
    所以代码还是需要仔细  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值