随笔分类 -  软硬件调试

关于软硬件调试的学习笔记
摘要:声明:本文档的内容主要来源于书籍《软件调试修炼之道》作者Paul Butcher,属于读书笔记。欢迎转载! 自动化测试 1.有效的自动化测试 明确说明测试结果是否通过 不需要安装、测试后也能够撤销对环境所做的任何修改 单击运行所有的测试 全面覆盖,做到足够解决完全覆盖是可能的 2. 自动化测试可以作 阅读全文

posted @ 2016-06-27 06:46 shuolang 阅读(182) 评论(0) 推荐(0) |

摘要:声明:本文档的内容主要来源于书籍《软件调试修炼之道》作者Paul Butcher,属于读书笔记。欢迎转载! 缺陷优先 如何使缺陷修复与软件开发相结合? 如何估计缺陷修复花费的时间? 如何确保项目不会陷入《人月神话》中所描述的无数缺陷修复的焦油坑中呢? 要采用早起缺陷修复原则,并且基于以下两个原则 早 阅读全文

posted @ 2016-06-19 07:25 shuolang 阅读(205) 评论(0) 推荐(0) |

摘要:声明:本文档的内容主要来源于书籍《软件调试修炼之道》作者Paul Butcher,属于读书笔记。欢迎转载! 缺陷可以随时发生,从代码编写完毕到代码发布后的成年累月! 无论你开发什么样的软件,都需要创建一些流程,通过这些流程,可以告诉你软件哪里出了问题,并且应该如何修复! 1、缺陷管理系统 既有简单用 阅读全文

posted @ 2016-06-08 08:19 shuolang 阅读(180) 评论(0) 推荐(0) |

摘要:声明:本文档的内容主要来源于书籍《软件调试修炼之道》作者Paul Butcher,属于读书笔记。欢迎转载! 有时尽管修复设计的是一个孤立的代码区,但你还是需要大局观,在修复缺陷之后花时间反思一下! 一旦确定了错误的来源,就可以采取措施避免它再发生!有些情况下,只不过是告诉你未来在在这一方面要更加小心 阅读全文

posted @ 2016-06-04 07:57 shuolang 阅读(161) 评论(0) 推荐(0) |

摘要:声明:本文档的内容主要来源于书籍《软件调试修炼之道》作者Paul Butcher,属于读书笔记。欢迎转载! 修复缺陷 对于一个好的修复来说,不仅仅是让软件运行正确,还需要为将来奠定基础。一些列零散的未经仔细考虑的修改,都将是原本的简洁设计逐步消失。 好的修复必须同时实现以下目标: 修复问题 避免引入 阅读全文

posted @ 2016-05-28 07:53 shuolang 阅读(271) 评论(0) 推荐(0) |

摘要:声明:本文档的内容主要来源于书籍《软件调试修炼之道》作者Paul Butcher,属于读书笔记。 不要急于动手! 尽管可以利用各种工具和技术以及软件自身查找缺陷,但是你最重要的财富是你的智慧 一种调试方法 提出假设->设计实验->假设不成立,重新开始 采用不同类型的实验 进行几种不同类型的实验,但是 阅读全文

posted @ 2016-05-10 07:09 shuolang 阅读(195) 评论(0) 推荐(0) |

摘要:声明:本文档的内容主要来源于书籍《软件调试修炼之道》作者Paul Butcher,属于读书笔记。 重现第一,提问第二 问题重现是实证过程的最强大武器,如果不能重现问题,你也无法证明修复了它 首先按照缺陷报告的描述的步骤来做, 抓住重点,包含三个控制因素 软件本身:确保你使用的软件版本和bug提交的版 阅读全文

posted @ 2016-04-28 06:47 shuolang 阅读(211) 评论(0) 推荐(0) |

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

posted @ 2016-04-23 07:42 shuolang 阅读(198) 评论(0) 推荐(0) |

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

posted @ 2016-04-12 06:43 shuolang 阅读(258) 评论(0) 推荐(0) |

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

posted @ 2016-04-09 07:21 shuolang 阅读(217) 评论(0) 推荐(0) |

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

posted @ 2016-04-04 08:13 shuolang 阅读(208) 评论(0) 推荐(0) |

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

posted @ 2016-03-30 06:54 shuolang 阅读(167) 评论(0) 推荐(0) |

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

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

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

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

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

posted @ 2016-03-21 07:16 shuolang 阅读(308) 评论(0) 推荐(0) |

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

posted @ 2016-03-19 21:12 shuolang 阅读(183) 评论(0) 推荐(0) |

摘要:1 阅读芯片手册 会告诉你芯片如何初始化、如何配置、外围电路如何搭配,才能让其正常稳定工作。 另外还要看厂家提供的errata sheet,比如STM32,每个系列都有errata sheet(勘误手册),里面介绍了MCU使用时的局限性,可以避免设计中由于误用MCU引发的的致命缺陷!2 仔细阅读手册 阅读全文

posted @ 2016-03-18 07:23 shuolang 阅读(202) 评论(0) 推荐(0) |

摘要:前言: 1、本文内容主要来源于书籍《调试九法:软硬件错误的排查之道》作者David J.Agans,属于读书笔记+个人体会。 2、本书介绍的方法的宗旨不是预防、保障和筛选,以预防bug的产生,而是如何找到bug并修复它们,如何高效的追踪和解决不易察觉的软硬件问题,不针对特定的平台、语言或者工具,不涉 阅读全文

posted @ 2016-03-18 07:20 shuolang 阅读(203) 评论(0) 推荐(0) |

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3