软件调试
作者:张银奎
出版时间:2008年6月
【图书简介】
围绕如何实现高效调试这一主题,本书深入系统地介绍了以调试器为核心的各种软件调试技术。本书共30章,分为6篇。第1篇介绍了软件调试的概况和简要历史。第2篇以英特尔架构(IA)的CPU为例,介绍了计算机系统的硬件核心所提供的调试支持,包括异常、断点指令、单步执行标志、分支监视、JTAG和MCE等。第3篇以Windows操作系统为例,介绍了计算机系统的软件核心中的调试设施,包括内核调试引擎、用户态调试子系统、异常处理、验证器、错误报告、事件追踪、故障转储、硬件错误处理等。第4篇以Visual C/C++编译器为例,介绍了生产软件的主要工具的调试支持,重点讨论了编译期检查、运行期检查及调试符号。第5篇讨论了软件的可调试性,探讨了如何在软件架构设计和软件开发过程中加入调试支持,使软件更容易被调试。在前5篇内容的基础上,第6篇首先介绍了调试器的发展历史、典型功能和实现方法,然后全面介绍了WinDBG调试器,包括它的模块结构、工作模型、使用方法和主要调试功能的实现细节。本书是对软件调试技术在过去50年中所取得成就的全面展示,也是对作者本人在软件设计和系统开发第一线奋战10多年的经验总结。本书理论与实践紧密结合,选取了大量具有代表性和普遍意义的技术细节进行讨论,是学习软件调试技术的宝贵资料,适合每一位希望深刻理解软件和自由驾驭软件的人阅读,特别是从事软件开发、测试、支持的技术人员和有关的研究人员。
【本书目录】
第1篇 绪论 1
第1章 软件调试基础 3
1.1 简介 3
1.2 基本特征 6
1.3 简要历史 8
1.4 分类 12
1.5 调试技术概览 15
1.6 错误与缺欠 20
1.7 与软件工程的关系 24
1.8 本章总结 26
第2篇 CPU的调试支持 27
第2章 CPU基础 29
2.1 指令和指令集 29
2.2 IA-32处理器 32
2.3 CPU的操作模式 38
2.4 寄存器 40
2.5 理解保护模式 46
2.6 段机制 50
2.7 分页机制(Paging) 55
2.8 系统概貌 62
2.9 本章总结 64
第3章 中断和异常 65
3.1 概念和差异 65
3.2 异常的分类 67
3.3 异常例析 69
3.4 中断/异常优先级 72
3.5 中断/异常处理 73
3.6 本章总结 74
第4章 断点和单步执行 75
4.1 软件断点 75
4.2 硬件断点 83
4.3 陷阱标志 95
4.4 实模式调试器例析 100
4.5 本章总结 105
第5章 分支记录和性能监视 107
5.1 分支监视概览 107
5.2 使用寄存器的分支记录 108
5.3 使用内存的分支记录 113
5.4 DS示例:CpuWhere 117
5.5 性能监视 123
5.6 本章总结 132
第6章 机器检查架构(MCA) 133
6.1 奔腾处理器的机器检查机制 134
6.2 MCA 135
6.3 编写MCA软件 141
6.4 本章总结 145
第7章 JTAG调试 147
7.1 简介 147
7.2 JTAG原理 149
7.3 JTAG应用 154
7.4 IA-32处理器的JTAG支持 156
7.5 本章总结 161