我的debug方法论

debug是必修的课程

学会怎么去debug,不仅缩小开发时间成本,还会激励开发人员的信心士气


大部分程序问题出现程序崩溃,都是在处理指针问题上,不是溢出(很难发现)就是操作非法内存

而一般崩溃的时候,Windows会报0x7fxxxxxx地址无法写入之类的错误,linux则报segmentation fault

这就是信息点

一般debug都是从程序离崩溃最近的表现来作定位的

这时候定位通常比较大

然后在定位的地方加上信息获取函数,一般取用信任的函数

printf、写日志文件、警告窗口之类的

然后缩小可能发生错误范围

继续获取信息,进入一个递归的过程,直至最后定位到错误原因



说白了,就是类似网络地图,从方位定位到亚洲,然后点一下“+”按钮,放大(缩小范围)可能发生错误的地方,确定是在中国境内,再进行“+”操作

直到最后获取到某个房子发生了问题,然后进行除错。其实就是利用大范围数据去获得小范围数据的思想。



我刚出来工作的时候,经常一遇到问题就头疼,然后就清理、重新编译或者从头到尾看源码,想为什么会发生问题,最后浪费半天时间还找不出个所以然,很打击开发者信心和士气。

你可能感兴趣的:(工作,windows,linux,网络)