22 Conquering Debugging
避免 bug
bug 不能完全避免,不过有一些方式可以尽可能避免。仔细阅读一些好书,比如这本;编码前做好设计,过程中不要害怕重构,保证设计良好;进行 code review;测试,各个层次的测试;自动化单元测试,其他类型测试也应该自动化;处理错误和异常;使用智能指针;不要忽视编译器的警告;使用静态代码分析工具;好的编程风格。
PLAN FOR BUGS
打日志。在可能出现错误、非期望的结果、关键节点打上日志,并附上上下文变量的值,对于跟踪程序执行很有用。
日志往往包含 debug trace 信息,比如线程 ID,函数名,文件和行号等必要信息。
Debug 模式编译的代码可以加入大量的 assert
,确保程序在运行到某个地方符合预期。