对于调试这一块,我觉得是凭借经验的积累而不断改善的,因此对于调试的书籍历来没有关注过,今天休息时间翻开了《调试九法》这本书随便看看了,忽然以为本身之前调试确实犯了好多错误,这里算是给本身一个纠正的开始,习惯是要改变,但不能少了耐心。工具
1,阅读手册
我作开发以前确定也是须要阅读手册的,但一般只是找本身关心的地方。而后等到出错了,回过头来再看手册,可是第一印象对我很重要,因此第二次看手册会不觉地去着重看之前有印象的部分,而忽略了其余细节部分,这是很要命的。看手册必定要有耐心,一句一句的进行。由于细节就是解决问题的关键。不要觉得其余部分没用,由于整个流程的细节你还不懂。调试
2,制造失败
当运行代码时会发生间歇性的bug,这是就须要屡次制造失败来观察他,这里可不是模拟失败,有时我会猜想失败引起的缘由,而后重构代码来模拟bug,虽然有时会成功解决问题,可是这毫不是最合适的方式。仔细思考背后的原理,而后从头开始一点一点进行来引起失败。要认识到“那”是有可能发生的,不要说的那么绝对。由于整个的真正原理你还不懂。一般在调试中,我会把调试正确的代码中的调试语句所有删掉来显的代码的“干净”,这毫不是一个好方法。通过调试正确的代码要作好备份,而后再正式代码中注释掉或者“#ifndef”来屏蔽调试的部分,由于你确定不知道之后还会不会再次调试。code
3,不要想,多看
我喜欢想这个bug出现的缘由,我想很多数工程师有这个习惯吧。可是我认为这是最很差的一个了,想永远没有观察来的有效,虽然这可能花的时间会比想时间长不少。若是想找到故障所在,必需要找到足够多的细节而后再判断。找到问题后多实验几回不一样的情况,而后才能真正实现稳定性。不要惧怕深刻研究,由于这才真正解决这一类问题的关键。还有就是不要忽略了外部调试工具的影响,示波器的探针会增长电容,打印语句会影响时间和代码规模。猜想只是为了肯定搜索重点目标。而后进行观察。开发