《调试九法》阅读笔记

news2025/7/11 7:33:28

1. 理解系统

阅读手册、仔细阅读每个细节、掌握基础知识、了解工作流程、了解工具。

2. 制造失败

制造失败、从头开始、引发失败、但不要模拟失败、查找不受你控制的条件、记录每件事情,并找到间歇性bug特征、不要过于相信统计数据、要认识到“那”是可能会发生的、永远不要丢掉一个调试工具。

3. 不要想,而要看

观察失败、查看细节、植入插装工具、添加外部插装工具、不要害怕深入研究、注意海森堡效应、猜测只是为了确定搜索的重点。

4. 分而治之

通过逐次逼近缩小搜索范围、确定范围、确定你位于bug的哪一侧、从有问题的一端开始搜索、修复已知bug,bug相互保护,互相隐藏、首先消除噪声干扰。

5. 一次只改一个地方

隔离关键因素、用双手抓住黄铜杆、一次只改一个测试、与正常情况进行比较、确定自从上一次正常工作以来你改变了什么地方。

6. 保持审计跟踪

把你的操作的顺序和结果全部记录下来、要知道,任何细节都可能是重要的、把事情关联到一起、用于设计的审计跟踪在测试中也非常有用、把事情记录下来。

7. 检查插头

质疑你的假设、从头开始、对工具进行测试。

8. 获得全新观点

征求别人的意见、获取专业知识、听取别人的经验、帮助无处不在、放下面子、报告症状,而不要讲你的理论、你提出的问题不必十分肯定。

9. 如果你不修复bug,他将依然存在

查证问题确实已被修复、查证确实是你的修复措施解决了问题、要知道,bug从来不会自己消失、从根本上解决问题、对过程进行修复。

参考文献

调试九法:软硬件错误的排查之道

调试九法 - 涂磊 - 博客园

调试九法-软硬件错误的排查之道_Jack魏的博客-CSDN博客 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/18017.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

[附源码]java毕业设计商场日常维修管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

【云原生】k8s 中的 hostNetwork 和 NetworkPolicy(网络策略)讲解与实战操作

文章目录一、hostNetwork 介绍二、k8s 网络策略 NetworkPolicy三、Pod 隔离的两种类型四、NetworkPolicy 资源1)NetworkPolicy 示例演示2)选择器 to 和 from 的行为五、总结一、hostNetwork 介绍 在k8s中,若pod使用主机网络,也就是…

UE5笔记【四】UE5主材质Master Materials和材质实例MI

上一篇我们讲解了关于鹅卵石的纹理材质。 假设:如果我们在关卡中每个材质都这么连接的话,那么将使得整个世界非常复杂,并且将浪费大量的时间。对此,解决方案是:主材质:master Materials。 新建一个新关卡…

springboot基于java的个性化推荐的电商购物商城平台设计与实现

本文主要探讨了个性化推荐的电商平台的设计与实现。并对其详细的设计方案、实现技术和运行情况做了分析和研究,最后对未来的工作做了研究与探讨。本文重点研究了以下几个方面: (1)系统的体系结构、主要功能模块、主要数据的工作流…

次元裂缝已打开,AI绘画突飞猛进,其潜力究竟有多大

目录 次元裂缝已打开 AI绘画 起源 人工智能画的画在美术比赛得第一名 原理 关键的CLIP 总结 次元裂缝已打开 #次元裂缝已打开#的一个话题火了~大量新人老玩家共赴无界AI 上面是AI绘画根据真实图片合成的图片与真图的对比,可以看出还原度还是很高的&#xff…

JUC学习笔记——共享模型之无锁

在本系列内容中我们会对JUC做一个系统的学习,本片将会介绍JUC的无锁 我们会分为以下几部分进行介绍: 无锁操作CAS与Volatile原子类型原理篇Unsafe 并发无锁操作 这一小节我们将讲解如何用无锁操作完成并发操作 问题展现 我们给出一段之前并发展示代…

机器人学优质资源

引言 实验室闲着查资料,发现西北大学有个很好的机器人学线上资源课程,Coursera上也有,记录一下,感觉还挺全的,而且GitHub上也开放了很多相应的学习资源。 Coursera的视频: Modern Robotics: Mechanics, Pla…

GitHub标星75k,阿里15W字的Spring高级文档(全彩版),真的太香了

随着 Spring 使用越来越广泛,Spring 已经成为 Java 程序员面试的必问知识点,很多同学对于Spring理解不是那么的深刻,经常就会被几个连环追问给干趴了! 今天小编整理了一下一线架构师的Spring源码高级文档:SpringSprin…

Java三大特征之一——继承

继承继承概述、使用继承的好处继承得儿设计规范,内存运行原理继承的特点继承后:成员变量、成员方法的访问特点继承后:方法重写继承后:子类构造器的特点继承后:子类构造器访问父类有参数构造器this、super总结继承概述、…

挂耳耳机十大品牌排行榜哪个好,目前排行靠前的五款耳机推荐

耳机作为生活的必需品,随着我们生活水平的提高,对于耳机的需求也随之加强,既需要在运动中使用,又要能够在日常佩戴照常无误,那么在此我的建议是对于防水性能一定要高,毕竟高的防水能够抵挡运动中的汗水&…

WPF MVVM

WPF MVVM MVVMModelViewViewModel Model:现实世界中对象抽象的结果,也就是实体模型View:UI界面ViewModel:为UI界面服务的模型,可以理解为数据传输对象(DTO) ViewModel和View的沟通有两个方面:数据和操作传递数据–使…

“综合”web项目编写------手把手0基础教学(二)

上一节介绍了编写综合项目的基本流程 “综合”web项目编写------手把手0基础教学(一) 这里将继续介绍项目的编写,一个一个功能挨个实现。 目录 实现用户的登录功能 一 . 编写工具包---封装数据库链接 二 . 构建数据模型 三 . 构建功能…

ASEMI代理艾赛斯IGBT管IXYB82N120C3H1

编辑-Z 艾赛斯IGBT管IXYB82N120C3H1参数: 型号:IXYB82N120C3H1 漏极-源极电压(VCES):1200V 连续漏电流(IC):82A 功耗(PC):1040W 工作结温度…

spring cloud在bootstrap.properties配置spring.profiles.active无效

bootstrap.properties 配置 bootstrap.properties spring.profiles.activeprofiles.active bootstrap-dev.properties / bootstrap-test.properties #服务器地址 spring.cloud.nacos.config.server-addr127.0.0.1:8848 #项目的命名空间的ID spring.cloud.nacos.config.name…

m基于FPGA和MATLAB的数字CIC滤波器设计和实现

目录 1.算法概述 2.仿真效果预览 3.MATLAB/FPGA部分代码预览 4.完整MATLAB/FPGA程序 1.算法概述 CIC滤波器由一对或多对积分-梳状滤波器组成,在抽取CIC中,输入信号依次经过积分,降采样,以及与积分环节数目相同的梳状滤波器。在…

Facebook账号复审的问题。

Facebook账号复审主要指的就是: Facebook个人广告账号,或者是你的企业bn广告系统当中的 Facebook投手号。在投放广告的过程当中,因为违规。或者其他原因。 Facebook需要审核这个Facebook账号的主体。简单的说就是他的合法性。 所以会要求你。…

基于Peer-Group(对等体组)的BGP和 BGP水平分割路由反射器

目录 一、简介 二、基于Peer-Group的IBGP配置 三、基于Peer-Group的EBGP配置 四、IBGP的水平分割与路由反射器 1.水平分割概念 2.现象 【1】R3收到的路由信息如下: 【2】R2收到的路由信息如下: 这就是IBGP水平分割导致的现象! 五、…

策略验证_卖出口诀_三种图线交叉点卖出股票需抢先

写在前面: 1. 本文中提到的“股票策略校验工具”的具体使用操作请查看该博文; 2. 文中知识内容来自书籍《同花顺炒股软件从入门到精通》 3. 本系列文章是用来学习技法,文中所得内容都仅仅只是作为演示功能使用 目录 解说 策略代码 结果 解…

m低信噪比下GPS信号的捕获算法研究,分别使用matlab和FPGA对算法进行仿真和硬件实现

目录 1.算法概述 2.仿真效果预览 3.MATLAB/FPGA部分代码预览 4.完整MATLAB/FPGA程序 1.算法概述 GPS卫星发送的信号一般由3个分量组成:载波、伪码和导航电文,其中伪码和导航电文采用BPSK技术去调制载波。GPS使用的两个L波段两种载频: 为了…

react学习随笔

创建react脚手架项目 方法一:在安装好nodejs的情况下 npm install -g create-react-app 全局安装react脚手架 create-react-app 项目名 创建一个新的react项目 方法二:直接安装 npx create-react-app 项目名 npx create-react-app 项目名 --template ty…