搜集的bug查找方法,欢迎补充

1、单步跟踪,有一些高级技巧,比如设置下一个执行点(Set Next Statement)。有时候你单步跟踪错过了一个地方,重新再来很麻烦,就可以用这个功能,把执行点重新设回去。这个技巧在解决一些不好重现的问题比较有帮助。VC、XCode等IDE都有这个功能。
2、条件断点,比如判断某个变量等于某个值的时候才断下来。
3、直接修改变量值或者内存数据。
4、打log,很多时候单步调试不方便,又不知道问题出在哪里,可以多打一些log。有时候出问题的地方不好确定,范围又太广,没办法到户打log,可以用二分法来,通过几次迭代迅速缩小范围。有时候打log会严重影响性能,导致功能不能正常运行,可以写个高性能的内存log模块来调试。
5、log输出到串口。这个嵌入式开发中基本上必备.
6、点LED。在嵌入式开发中,有时候log没法输出到串口,比如在bootloader中,串口还没初始化,或者快下电的时候串口不可用了,基本上只能靠点LED。
7、示波器、逻辑分析仪。嵌入式开发中有的时候不是你的程序逻辑有问题,而是时序控制不对或者总线有干扰,需要用专用设备看。
6、反汇编。C/C++代码中往往有很多宏开关,有时候一时半会儿搞不清楚哪些代码是有效的,可以用IDA Pro反汇编,直接对着汇编代码看。7、直接通过十六进制编辑器修改汇编指令。有时候修改源代码再编译打包很不方便,可以直接改编译出来的程序。
8、远程调试,有时候程序只有在特定的设备上运行才出现bug,本机没法复现。可以用这招。
9、打点。做互联网开发,很多时候你没法在问题的第一现场,可以上传一些重要数据到服务端,做在线分析。
10、crash自动捕捉、上报。可以用一些崩溃工具比如breadpad、bugly、bugtrap等自动捕捉崩溃,通过分析崩溃信息定位问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值