2016年4月23日

摘要: 有效调试不仅仅是排除缺陷,其包含如下几个步骤 弄明白软件为何运行错误 修复这个问题 避免破坏其它部分 保持或者提高代码的总体质量 确保同样的问题不在其它地方发生,也不会再次发生 构建实验、观察结果 依赖观察和经验,而不是理论和纯逻辑推理 阅读源码,推理软件的运行状况,通常效率低下而危险 要仔细的构建 阅读全文

posted @ 2016-04-23 07:42 shuolang 阅读(189) 评论(0) 推荐(0) 编辑


2016年4月12日

摘要: 1、查证问题确已被修复 如果遵循了“制造失败”这条规则,就知道如何验证你确实修复了问题。无论问题和修复看起来多么明显,你都无法保证修复是有效的,直到做了测试并验证。 2、查证确实你的修复措施解决了问题 如果你取消这个修复,系统再次出现失败,再应用这个修复,问题消失,才能够证明你确实修复了问题。这样做 阅读全文

posted @ 2016-04-12 06:43 shuolang 阅读(211) 评论(0) 推荐(0) 编辑


2016年4月9日

摘要: 1、征求别人意见 我们都是普通人,对任何事情都有偏见或者思维定式,包括对bug隐藏在哪里的看法,这些偏见会导致我们无法看清实际情况。其它人则从另一个角度看问题(可能也是他自己的偏见),但是会找到新的方法,对你解决问题有很大启发。 2、获取专业知识 有时系统的某个部分的知识看起来很神秘,我们不必到学校 阅读全文

posted @ 2016-04-09 07:21 shuolang 阅读(208) 评论(0) 推荐(0) 编辑


2016年4月8日

摘要: 1、质疑你的假设 你十分运行了正确的代码?电源插头是否已插好? 比如网络连接失败了,是不是你不小心把网线接头踢掉了?比如汽车无法启动,是否油箱没油了? 有时我们看到一个问题,通常在某个特定位置看到了正确的问题,但是导致这个问题的却在上游或者底层驱动上,只是系统不具备正确操作条件时,出现了奇怪的表现。 阅读全文

posted @ 2016-04-08 07:00 shuolang 阅读(142) 评论(0) 推荐(0) 编辑


2016年4月4日

摘要: 1、把你的操作、操作顺序和结果全部记录下来 要记录所做的事、做事的顺序、以及发生的结果,每次做完都要全部记录。就像调试硬件一样,必须指导每个步骤以及执行结果,才能确定下一步关注的重点。 2、要知道,任何细节都可能是重要的 有时bug报告可能就有一句简单的话,比如仪器显示出错了,或者仪器无法正常工作, 阅读全文

posted @ 2016-04-04 08:13 shuolang 阅读(195) 评论(0) 推荐(0) 编辑


2016年3月30日

摘要: 1、隔离关键元素 就像小学生物课,考察阳光对植物生长的影响,则需要保持养分、灌溉、生长温度等完全一致,一个有阳光照射,一个没有阳光照射,这样才能比较出阳光对植物的生产的影响.bug查找过程也要如此,在查找一个具有多个参数的函数的计算错误时,固定其它参数,同时修改一个参数的输入值,验证输出结果是否正确 阅读全文

posted @ 2016-03-30 06:54 shuolang 阅读(157) 评论(0) 推荐(0) 编辑


2016年3月27日

摘要: 1、通过逐次逼近缩小搜索范围 通过二分法,逐次缩小问题范围,在查找问题时,这个方法是唯一需要应用的规则,所有其它规则都是帮助你遵循这条规则。首先搜索前面1/2,如果有错,则再搜索前1/4,如果没错,则搜索范围就定在1/4-1/2之间,然后再次细分,几次之后就会找到问题。 实际案例:有次程序运行反应很 阅读全文

posted @ 2016-03-27 07:51 shuolang 阅读(153) 评论(0) 推荐(1) 编辑


2016年3月26日

摘要: 这一段时间找到CoIDE,发现其真的挺好用,编辑界面比Keil功能强大。因此把实际操作过程记录下来。 CoIDE 是CooCox专业打造的一款免费的ARMCortexMCU嵌入式集成开发环境(Integrated Development Environment,IDE)。CoIDE集成了CoBuil 阅读全文

posted @ 2016-03-26 09:54 shuolang 阅读(3062) 评论(1) 推荐(0) 编辑


2016年3月21日

摘要: 凭空想象,问题的原因很多,实际的原因只有看了才能发现! 如果猜测失败是如何发生的,那么常常会修复一些不是bug的问题,不仅浪费时间、还会破坏其它地方,因此不要这样做。 在医学领域,有听诊器、抽血化验、X透视、B超等方法。同样 在软件中,观察的方法有设置断点、添加调试语句、监视程序值、以及检查内存等方 阅读全文

posted @ 2016-03-21 07:16 shuolang 阅读(286) 评论(0) 推荐(0) 编辑


2016年3月19日

摘要: 1、重现失败 目的是为了观察它,找到原因,并检查修复是否成功。方法是进行内部预演、观察如何出错,如果出错会导致重大损失时则必须改变一些地方,但是尽量少改动原来的系统和顺序。 2、从头开始 需要知道bug发生之前的细节,试着从已知的状态开始,仔细观察到bug出现时执行的步骤和状态。 3、引发失败 如果 阅读全文

posted @ 2016-03-19 21:12 shuolang 阅读(173) 评论(0) 推荐(0) 编辑


Copyright © 2024 shuolang
Powered by .NET 8.0 on Kubernetes