濞嗐垼绻嬮崗澶夊濠㈠啿銇囬崚鈺€绨归弬鏉垮磿娑旓箑绨电純锟� [閻ц缍� | 閸忓秷鍨傚▔銊ュ斀]

    • Effective Debugging(调试软件和系统的66个有效方法)
      • 作者:(希)迪欧米迪斯·斯宾奈里斯|责编:陈灿然|译者:臧秀涛
      • 出版社:人民邮电
      • ISBN:9787115651952
      • 出版日期:2025/01/01
      • 页数:176
    • 售价:31.92
  • 内容大纲

        本书分为8章,共包含66个条目。本书首先讲解了调试策略(第1章)、调试方法(第2章)以及调试时所用的工具与技术(第3章),旨在帮助读者调试各类软件故障和系统故障。紧接着介绍了可应用于调试工作各阶段的技术,涵盖使用调试器(第4章)、编写程序(第5章)、编译软件(第6章)和运行系统(第7章)等阶段。本书最后一章(第8章)专注于介绍一些特定的调试工具和调试技术,这些工具和技术用于定位多线程和并发代码中那些棘手的bug。
        本书主要面向有一定经验的开发人员,帮助其提高快速定位并修复潜在错误的能力,使其在面对故障时也能具备全局视角。
  • 作者介绍

  • 目录

    第1章  宏观策略
      条目1:通过问题跟踪系统处理所有问题
      条目2:使用有针对性的查询在网上搜索与问题相关的见解
      条目3:确认前置条件和后置条件均已满足
      条目4:从问题入手,自下而上追查bug;从程序开始,自上而下追查bug
      条目5:寻找正常系统和故障系统之间的差异
      条目6:使用软件自带的调试工具
      条目7:多样化你的构建和执行环境
      条目8:将工作重点放在最重要的问题上
    第2章  通用方法与实践
      条目9:为调试的成功做好准备工作
      条目10:确保问题能够高效重现
      条目11:尽可能缩短从做出修改到看到结果的时间
      条目12:将复杂的测试场景自动化
      条目13:尽量比较全面地将调试数据展示出来
      条目14:考虑更新软件
      条目15:查阅第三方软件的源代码,深入了解其正确使用方式
      条目16:使用专门的监控和测试设备
      条目17:让故障的影响凸显出来
      条目18:支持在自己的桌面上调试复杂系统
      条目19:将调试任务自动化
      条目20:在调试前后做好清理工作
      条目21:修复所有犯同样错误的代码
    第3章  通用工具与技术
      条目22:使用UNIX命令行工具分析调试数据
      条目23:命令行工具的各种选项和习惯用法
      条目24:用编辑器研究调试数据
      条目25:优化你的工作环境
      条目26:使用版本控制系统追踪bug的原因和历史
      条目27:使用监控工具处理包含多个独立进程的系统
    第4章  调试器使用技巧
      条目28:编译代码时启用符号调试
      条目29:单步执行代码
      条目30:使用代码和数据断点
      条目31:熟悉反向调试
      条目32:沿着例程之间的调用关系寻找问题
      条目33:通过检查变量和表达式的值查找错误
      条目34:将调试器附加到正在运行的进程上
      条目35:处理核心转储文件
      条目36:配置优化自己的调试工具
      条目37:查看汇编代码和原始内存
    第5章  编程技巧
      条目38:审查并手动执行可疑代码
      条目39:与同事一起审查代码并推理问题
      条目40:添加调试功能
      条目41:添加日志语句
      条目42:使用单元测试
      条目43:使用断言
      条目44:通过扰动被调试程序来验证自己的假设
      条目45:尽量缩小可以正常工作的示例和故障代码之间的差异

      条目46:简化可疑代码
      条目47:考虑用另一种语言重写可疑代码
      条目48:改进可疑代码的可读性和结构
      条目49:从根源上解决问题,而不是解决表象
    第6章  编译时技术
      条目50:检查生成的代码
      条目51:使用静态程序分析工具
      条目52:通过配置保证构建和执行的确定性
      条目53:对调试库和所执行的检查进行配置
    第7章  运行时技术
      条目54:通过构建测试用例来找到错误
      条目55:快速失败
      条目56:检查应用程序的日志文件
      条目57:剖析系统和进程的运行情况
      条目58:跟踪代码的执行
      条目59:使用动态程序分析工具
    第8章  调试多线程代码
      条目60:利用事后调试分析死锁
      条目61:捕获和重现
      条目62:借助专用工具来发现死锁和竞争条件
      条目63:隔离并消除非确定性
      条目64:通过观察资源竞争情况来研究可伸缩性问题
      条目65:使用性能计数器定位伪共享
      条目66:考虑使用更高级别的抽象重写代码