经过二分法,逐次缩小问题规模,在查找问题时,这个办法是仅有需求运用的规矩,一切其它规矩都是协助你遵从这条规矩。
1、经过逐次迫临缩小查找规模
经过二分法,逐次缩小问题规模,在查找问题时,这个办法是仅有需求运用的规矩,一切其它规矩都是协助你遵从这条规矩。首要查找前面1/2,假如有错,则再查找前1/4,假如没错,则查找规模就定在1/4-1/2之间,然后再次细分,几回之后就会找到问题。
实践事例:有次程序运转反响很慢,特别是蜂鸣器响一次后,要几秒钟的时刻,才干相应按键。因而就选用这个办法,很快承认慢是由等候蜂鸣器时刻过长导致,从程序逻辑看,等候蜂鸣器完毕函数并没有过错,可是其间while循环等候的蜂鸣器完毕标志的变量,是在中止中处理的,该标志由于未定义为volatile类型,因而被编译器优化后,循环判别时只获取一次,所以只要循环延时超时退出时才完毕。改为volatile类型后,问题解决。
2、运用易于检查的测验形式
在存储器读写测验、通讯数据偶然失利测验时,发送00 55 AA FF或许1到100接连数据比运用随机数据更简单发现过错。在测验五颜六色显现屏色彩失真时,选用红绿蓝黄等色条比图片要简单发现问题。
实践事例:有次运用TFT显现图片,是非的显现正常,五颜六色的色彩失真,而且毛刺严峻,认为显现屏有质量问题,运用五颜六色条后,发现显现和色彩和设定的不一致,细心对比才发现驱动程序宣布的16位数据,依照字节发送时,数据倒置,所以调整后显现正常。
3、从有问题的一端开端查找
不要从正确的一端开端承认,正确的太多了,因而需求从过错的一端开端,然后向上游查找。
4、修正已知的bug
有时咱们很难信任一个体系有许多bug,这使得分而治之的阻隔准则变得困难,因而假如的确查明晰其间一个问题时,应该当即修正它,然后再查找其它问题。只要修正了已知的过错,才干集中精力查找其它问题,有时修正一个问题,另一问题也消失了,也便是两个问题时是一个bug。
5、首要消除噪声搅扰
在硬件中,噪音也或许因而各种难以查找的间歇性问题,因而查找问题前,应该首要留意短时脉冲搅扰、时钟回波、模拟信号噪声、时序动摇等不稳定要素;
在软件中,不合理的多线程、意外的冲入例程、未初始化的局部变量都会导致体系发生许多随机行为,为作业带来许多费事。
别的,技术人员很简单成为完美主义者,为了到达高质量,把一切欠好的规划都修正一遍,或许会由于前面一个程序编写的看起来欠好的程序代码就删掉重写,可是假如没有引起实践问题,最好仍是保存他们吧,不要过分极点,你的精力在于找到bug并消除他们,这种修正耽误了真实的研讨时刻。