科技
类型
7.8
豆瓣评分
可以朗读
语音朗读
198千字
字数
2009-11-01
发行日期
展开全部
主编推荐语
本书适合各层次软件开发人员、管理人员和测试人员阅读。
内容简介
调试对于软件的成败至关重要,正确使用恰当的调试工具可以提高发现和改正错误的效率。本书详细介绍了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月,由人民邮电出版社投资控股,以策划出版高质量的科技书籍为核心业务,主要出版领域包括计算机、电子电气、数学统计、科普等,通过引进国际高水平的教材、专著,以及发掘国内优秀原创作品等途径,为目标读者提供一流的内容。