展开全部

主编推荐语

本书适合各层次软件开发人员、管理人员和测试人员阅读。

内容简介

调试对于软件的成败至关重要,正确使用恰当的调试工具可以提高发现和改正错误的效率。本书详细介绍了3种调试器,GDB用于逐行跟踪程序、设置断点、检查变量以及查看特定时间程序的执行情况,DDD是流行的GDB的GUI前端,而Eclipse提供完整的集成开发环境。书中不但配合实例讨论了如何管理内存、理解转储内存、跟踪程序找出错误等内容,更涵盖了其他同类书忽略的主题,例如线程、客户/服务器、GUI和并行程序,以及如何躲开常见的调试陷阱。

目录

  • 版权声明
  • 前言
  • 第1章 预备知识
  • 1.1 本书使用的调试工具
  • 1.2 编程语言
  • 1.3 调试的原则
  • 1.3.1 调试的本质:确认原则
  • 1.3.2 调试工具对于确认原则的价值所在
  • 1.3.3 其他调试原则
  • 1.4 对比基于文本的调试工具与基于GUI的调试工具,两者之间的折中方案
  • 1.4.1 简要比较界面
  • 1.4.2 折中方法
  • 1.5 主要调试器操作
  • 1.5.1 单步调试源代码
  • 1.5.2 检查变量
  • 1.5.3 在GDB、DDD和Eclipse中设置监视点以应对变量值的改变
  • 1.5.4 上下移动调用栈
  • 1.6 联机帮助
  • 1.7 初涉调试会话
  • 1.7.1 GDB方法
  • 1.7.2 同样的会话在DDD中的情况
  • 1.7.3 Eclipse中的会话
  • 1.8 启动文件的使用
  • 第2章 停下来环顾程序
  • 2.1 暂停机制
  • 2.2 断点概述
  • 2.3 跟踪断点
  • 2.3.1 GDB中的断点列表
  • 2.3.2 DDD中的断点列表
  • 2.3.3 Eclipse中的断点列表
  • 2.4 设置断点
  • 2.4.1 在GDB中设置断点
  • 2.4.2 在DDD中设置断点
  • 2.4.3 在Eclipse中设置断点
  • 2.5 展开GDB示例
  • 2.6 断点的持久性
  • 2.7 删除和禁用断点
  • 2.7.1 在GDB中删除断点
  • 2.7.2 在GDB中禁用断点
  • 2.7.3 在DDD中删除和禁用断点
  • 2.7.4 在Eclipse中删除和禁用断点
  • 2.7.5 在DDD中“移动”断点
  • 2.7.6 DDD中的Undo/Redo断点动作
  • 2.8 进一步介绍浏览断点属性
  • 2.8.1 GDB
  • 2.8.2 DDD
  • 2.8.3 Eclipse
  • 2.9 恢复执行
  • 2.9.1 在GDB中
  • 2.9.2 在DDD中
  • 2.9.3 在Eclipse中
  • 2.10 条件断点
  • 2.10.1 GDB
  • 2.10.2 DDD
  • 2.10.3 Eclipse
  • 2.11 断点命令列表
  • 2.12 监视点
  • 2.12.1 设置监视点
  • 2.12.2 表达式
  • 第3章 检查和设置变量
  • 3.1 主要示例代码
  • 3.2 变量的高级检查和设置
  • 3.2.1 在GDB中检查
  • 3.2.2 在DDD中检查
  • 3.2.3 在Eclipse中检查
  • 3.2.4 检查动态数组
  • 3.2.5 C++代码的情况
  • 3.2.6 监视局部变量
  • 3.2.7 直接检查内存
  • 3.2.8 print和display的高级选项
  • 3.3 从GDB/DDD/Eclipse中设置变量
  • 3.4 GDB自己的变量
  • 3.4.1 使用值历史
  • 3.4.2 方便变量
  • 第4章 程序崩溃处理
  • 4.1 背景资料:内存管理
  • 4.1.1 为什么程序会崩溃
  • 4.1.2 内存中的程序布局
  • 4.1.3 页的概念
  • 4.1.4 页的角色细节
  • 4.1.5 轻微的内存访问程序错误可能不会导致段错误
  • 4.1.6 段错误与Unix信号
  • 4.1.7 其他类型的异常
  • 4.2 核心文件
  • 4.2.1 核心文件的创建方式
  • 4.2.2 某些shell可能禁止创建核心文件
  • 4.3 扩展示例
  • 4.3.1 第一个程序错误
  • 4.3.2 在调试会话期间不要退出GDB
  • 4.3.3 第二个和第三个程序错误
  • 4.3.4 第四个程序错误
  • 4.3.5 第五个和第六个程序错误
  • 第5章 多活动上下文中的调试
  • 5.1 调试客户/服务器网络程序
  • 5.2 调试多线程代码
  • 5.2.1 进程与线程回顾
  • 5.2.2 基本示例
  • 5.2.3 变体
  • 5.2.4 GDB线程命令汇总
  • 5.2.5 DDD中的线程命令
  • 5.2.6 Eclipse中的线程命令
  • 5.3 调试并行应用程序
  • 5.3.1 消息传递系统
  • 5.3.2 共享内存系统
  • 5.4 扩展示例
  • 5.4.1 OpenMP概述
  • 5.4.2 OpenMP示例程序
  • 第6章 特殊主题
  • 6.1 根本无法编译或加载
  • 6.1.1 语法错误消息中的“幽灵”行号
  • 6.1.2 缺少库
  • 6.2 调试GUI程序
  • 调试curses程序
  • 第7章 其他工具
  • 7.1 充分利用文本编辑器
  • 7.1.1 语法突出显示
  • 7.1.2 匹配括号
  • 7.1.3 Vim与makefile
  • 7.1.4 makefile和编译器警告
  • 7.1.5 关于将文本编辑器作为IDE的最后一个考虑事项
  • 7.2 充分利用编译器
  • 7.3 C语言中的错误报告
  • 使用errno
  • 7.4 更好地使用strace和ltrace
  • 7.5 静态代码检查器:lint与其衍生
  • 7.5.1 如何使用splint
  • 7.5.2 本节最后注意事项
  • 7.6 调试动态分配的内存
  • 7.6.1 检测DAM问题的策略
  • 7.6.2 Electric Fence
  • 7.6.3 用GNU C库工具调试DAM问题
  • 第8章 对其他语言使用GDB/DDD/Eclipse
  • 8.1 Java
  • 8.1.1 直接使用GDB调试Java
  • 8.1.2 使用DDD与GDB调试Java
  • 8.1.3 使用DDD作为JDB的GUI
  • 8.1.4 用Eclipse调试Java
  • 8.2 Perl
  • 8.2.1 通过DDD调试Perl
  • 8.2.2 在Eclipse中调试Perl
  • 8.3 Python
  • 8.3.1 在DDD中调试Python
  • 8.3.2 在Eclipse中调试Python
  • 8.4 调试SWIG代码
  • 8.5 汇编语言
展开全部

评分及书评

尚无评分
目前还没人评分

出版方

人民邮电出版社·图灵出品

图灵社区成立于2005年6月,由人民邮电出版社投资控股,以策划出版高质量的科技书籍为核心业务,主要出版领域包括计算机、电子电气、数学统计、科普等,通过引进国际高水平的教材、专著,以及发掘国内优秀原创作品等途径,为目标读者提供一流的内容。