debug方法论

想来今年有几次印象比较深的debug经历。每次的debug时间差不多在一周,每次也都学到一些新的调式手段。总结以下debug的经验。

第一点:debug最重要的逻辑要严密,要基于一个确定的事实用控制变量法去测试猜想。对于不确定的事实不要当成既定事实,这是debug的大忌。错误往往隐藏在下意识中。要尽量做到已知的都是经过验证的。

第二点:减少变量,尽量用最简单,最熟悉的方式去复现bug。变量太多会导致问题变得复杂,简化问题才能接近真相。

第三点:重视log。错误日志是发现问题最重要的信息,要尽量获取完整连续的log,比如使用journalctl -f可以获取连续的log,避免遗漏。对于重要的log,要完整解析,避免错过重要的信息。

第四点:善用好的工具。对与跟系统相关的bug,bpftrace,objdump,gdb等都是很好的工具,当然我觉得最好用的工具还是print,没有之一。先用print,了解大概的方向,再用那些高级的玩意去深挖。

第五点:了解软件栈。要对研究的对象工作在哪一层有清晰的认识,了解各层软件之间的交互,这对于了解事情是怎么发生的非常重要。

暂时就想到这些。

posted on   半山随笔  阅读(47)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示