一些软件调试的总结

        在《编程珠玑》第五章里面,有句话:“专业的调试人员永远不会忘记,无论系统的行为咋看起来有多么神秘莫测,其背后总有合乎逻辑的解释”。

 这里总结几点排查 技术问题 的思路

1,问题是否必现?  如果是必现的,那么解决问题就成功了90%.    如果不是必现的,努力去尝试复现问题.

2,定位问题的点(思路),  手段可以是

        2.1  分析出错日志(找到不懂的关键词要google);

        2.2  gdb调试core文件;bt 看下栈打印以及core信号;

        2.3  添加打印法,这个方法看起来不那么高大尚,但是确是最简洁有力的一种调试方法。要知道在代码的那个部位打印那个变量,这个很关键。知道正确的打印位置,是对程序员系统熟悉程度以及软件基本功的有力考验。

        2.4  经典的 排除法,例如 注释掉代码,或者 一个模块一个模块卸载;查看问题是否还出现。

        2.5  基线对比法(鲁代码),选择一个不出问题的基线,和出问题的分支线,做改动对比。对比过程中,要有这个信念:90%的问题都是改动引发的 !

        2.6  排除环境问题。开发过程中经常遇到: 我在这里运行可以,但是到哪里却不行了!的问题,从几个方面思考:软件版本一致吗?编译的操作系统内核版本一致吗?配置一致吗?

3,排查问题的风格

        3.1  保持好奇心,以及解决问题的兴趣。

        3.2  没思路要找人要思路,特别是之前开发过该系统的人。

        3.3  及时汇报阶段进展,发在相应群里让大家知道。一是让leader知道,二是促进大家讨论。

4,休闲时间多看书

        有时你会在书中偶然发现,你之前花了几天努力找到的答案,在书中已经有了。你会好奇为什么当时没有注意到书中的这段话。

        Linux四库全书,《APUE》,《CS.APP》,《STL源码剖析》等等金典基础的书籍多看几遍。扎实的技术基础,能给你自由。

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值