【读书笔记】代码大全23章:调试

来源:互联网 发布:windows xp升级win7 编辑:程序博客网 时间:2024/05/17 00:56
  • 调试的基本问题
    • BUG就是缺陷、错误、谬误
    • 调试不能提高软件质量
    • 调试速度差异
      • 好的程序员和差的程序员速度能相差20倍
    • 将缺陷看成机遇
      • 调试的时候能让你了解整个程序
      • 让你知道你犯下的是哪种错误
      • 让你知道别人眼中的代码质量是怎样的
      • 让你知道你是如何解决问题的
      • 让你指导你是如何修复缺陷的
      • 总之调试能让你进步
    • 低效的调试方法
      • Devil的调试建议(低效)
        • 猜测缺陷的位置
        • 不花时间完全理解问题,只是找到了缺陷
        • 只是修复个别情况。例如:x=Compute(y);if(y==17)x=25.15;
      • 迷信方法
        • 出现缺陷往往都是自己在程序上犯下的错误,而不是数据库或者编译器的错误
  • 找出错误
    • 科学调试方法
      • 通过重复实验收集数据
      • 通过数据作出假设
      • 设计实验证明假设
      • 证明假设
      • 必要的话重复步骤
    • 高效调试方法
      • 稳定缺陷
      • 定位缺陷
      • 修复缺陷
      • 测试修复情况
      • 找出相似的错误
    • 暴力调试
      • 重新设计有错误的那部分代码
      • 抛弃一部分代码重写
      • 抛弃整个程序重写
      • 编译程序时输出所有的调试信息
      • 修复所有警告
      • 分离单元测试,把代码移到隔离环境中测试
      • 创建自动化测试,并且让它运行整个晚上
      • 单步调试大循环
      • 程序中插入print输出调试信息
      • 用另一个编译器编译
      • 换一个环境运行程序
      • 完全模拟出出错机器的环境
      • 细分集成测试
    • 语法错误
      • 借助编译器和IDE,这种错误已经快灭绝了
  • 修复错误
    • 修复前首先要理解缺陷
    • 理解整个程序,而不仅仅是问题
    • 确认缺陷诊断无误
    • 放轻松
    • 修复问题,不是修复问题的症状
      • 这种修复通常情况下是没有用的
      • 这种修复无法维护
      • 在修改代码之前,首先要确认这种修复办法可行
    • 一次只修改一个地方
    • 修复完毕之后检查一遍
    • 修复完毕之后检查整个程序
    • 添加一个关于这个缺陷的单元测试
    • 查找相似的错误
  • 调试心理学
    • 心理距离,例如stoppt和stcppt很相似
  • 调试工具
    • 源码比较工具:diff
    • 编译器警告信息
    • 语法检测工具和逻辑检查工具:lint
    • 性能分析工具:也能找出bug
    • 测试框架
    • 调试器
0 0
原创粉丝点击