软件调试:Software Debugging
本书贴有激光防伪标志,仅印1500册。
¥
20
1.6折
¥
128
八五品
仅1件
作者张银奎 著
出版社电子工业出版社
出版时间2008-06
版次1
印刷时间2009-12
印次3
装帧平装
货号368##
上书时间2024-12-27
商品详情
- 品相描述:八五品
-
内页较新,后边角有轻微水痕污渍。
图书标准信息
-
作者
张银奎 著
-
出版社
电子工业出版社
-
出版时间
2008-06
-
版次
1
-
ISBN
9787121064074
-
定价
128.00元
-
装帧
平装
-
开本
16开
-
纸张
胶版纸
-
页数
1006页
-
字数
1200千字
-
正文语种
简体中文
- 【内容简介】
-
围绕如何实现高效调试这一主题,本书深入系统地介绍了以调试器为核心的各种软件调试技术。本书共30章,分为6篇。第1篇介绍了软件调试的概况和简要历史。第2篇以英特尔架构(IA)的CPU为例,介绍了计算机系统的硬件核心所提供的调试支持,包括异常、断点指令、单步执行标志、分支监视、JTAG和MCE等。第3篇以Windows操作系统为例,介绍了计算机系统的软件核心中的调试设施,包括内核调试引擎、用户态调试子系统、异常处理、验证器、错误报告、事件追踪、故障转储、硬件错误处理等。第4篇以VisualC/C++编译器为例,介绍了生产软件的主要工具的调试支持,重点讨论了编译期检查、运行期检查及调试符号。第5篇讨论了软件的可调试性,探讨了如何在软件架构设计和软件开发过程中加入调试支持,使软件更容易被调试。在前5篇内容的基础上,第6篇首先介绍了调试器的发展历史、典型功能和实现方法,然后全面介绍了WinDBG调试器,包括它的模块结构、工作模型、使用方法和主要调试功能的实现细节。
本书是对软件调试技术在过去50年中所取得成就的全面展示,也是对作者本人在软件设计和系统开发第一线奋战10多年的经验总结。本书理论与实践紧密结合,选取了大量具有代表性和普遍意义的技术细节进行讨论,是学习软件调试技术的宝贵资料,适合每一位希望深刻理解软件和自由驾驭软件的人阅读,特别是从事软件开发、测试、支持的技术人员和有关的研究人员。
- 【作者简介】
-
张银奎,高级软件工程师,高端调试网站主要创始人,《程序员 》杂志“软件调试”专栏作者
- 【目录】
-
第1篇绪论
第1章软件调试基础
1.1简介
1.2基本特征
1.3简要历史
1.4分类
1.5调试技术概览
1.6错误与缺欠
1.7与软件工程的关系
1.8本章总结
第2篇CPU的调试支持
第2章CPU基础
2.1指令和指令集
2.2IA-32处理器
2.3CPU的操作模式
2.4寄存器
2.5理解保护模式
2.6段机制
2.7分页机制(Paging)
2.8系统概貌
2.9本章总结
第3章中断和异常
3.1概念和差异
3.2异常的分类
3.3异常例析
3.4中断/异常优先级
3.5中断/异常处理
3.6本章总结
第4章断点和单步执行
4.1软件断点
4.2硬件断点
4.3陷阱标志
4.4实模式调试器例析
4.5本章总结
第5章分支记录和性能监视
5.1分支监视概览
5.2使用寄存器的分支记录
5.3使用内存的分支记录
5.4DS示例:CpuWhere
5.5性能监视
5.6本章总结
第6章机器检查架构(MCA)
6.1奔腾处理器的机器检查机制
6.2MCA
6.3编写MCA软件
6.4本章总结
第7章JTAG调试
7.1简介
7.2JTAG原理
7.3JTAG应用
7.4IA-32处理器的JTAG支持
7.5本章总结
第3篇操作系统的调试支持
第8章Windows概要
8.1简介
8.2进程和进程空间
8.3内核模式和用户模式
8.4架构和系统部件
8.5本章总结
第9章用户态调试模型
9.1概览
9.2采集调试消息
9.3发送调试消息
9.4调试子系统服务器(XP之后)
9.5调试子系统服务器(XP之前)
9.6比较两种模型
9.7NTDLL中的调试支持例程
9.8调试API224
9.9本章总结
第10章用户态调试过程
10.1调试器进程
10.2被调试进程
10.3从调试器中启动被调试程序
10.4附加到已经启动的进程
10.5处理调试事件
10.6中断到调试器
10.7输出调试字符串
10.8终止调试会话
10.9本章总结
第11章中断和异常管理
11.1中断描述符表
11.2异常的描述和登记
11.3异常分发过程
11.4结构化异常处理(SEH)
11.5向量化异常处理(VEH)
11.6本章总结
第12章未处理异常和JIT调试
12.1简介
12.2默认的异常处理器
12.3未处理异常过滤函数
12.4应用程序错误对话框
12.5JIT调试和Dr.Watson
12.6顶层异常过滤函数
12.7Dr.Watson
12.8DRWTSN32的日志文件
12.9用户态转储文件
12.10本章总结
第13章硬错误和蓝屏
13.1硬错误提示
13.2蓝屏终止(BSOD)
13.3系统转储文件
13.4分析系统转储文件
13.5辅助的错误提示方法
13.6配置错误提示机制
13.7防止滥用错误提示机制
13.8本章总结
第14章错误报告
14.1WER1.0
14.2系统错误报告
14.3WER服务器端
14.4WER2.0
14.5CER
14.6本章总结
第15章日志
15.1日志简介
15.2ELF的架构
15.3ELF的数据组织
15.4察看和使用ELF日志
15.5CLFS的组成和原理
15.6CLFS的使用方法
15.7本章总结
第16章事件追踪
16.1简介
16.2ETW的架构
16.3提供ETW消息
16.4控制ETW会话
16.5消耗ETW消息
16.6格式描述
16.7NTKernelLogger
16.8GlobalLoggerSession
16.9CrimsonAPI
16.10本章总结
第17章WHEA
17.1目标和架构
17.2错误源
17.3错误处理过程
17.4错误持久化
17.5注入错误
17.6本章总结
第18章内核调试引擎
18.1概览
18.2连接
18.3启用
18.4初始化
18.5内核调试协议
18.6与内核交互
18.7建立和维持连接
18.8本地内核调试
18.9本章总结
第19章Windows的验证机制
19.1简介
19.2驱动验证器的工作原理
19.3使用驱动验证器
19.4应用程序验证器的工作原理
19.5使用应用程序验证器
19.6本章总结
第4篇编译器的调试支持
第20章编译和编译期检查
20.1程序的构建过程
20.2编译
20.3VisualC++编译器
20.4编译错误和警告
20.5编译期检查
20.6标准标注语言
20.7本章总结
第21章运行库和运行期检查
21.1C/C++运行库
21.2链接运行库
21.3运行库的初始化和清理
21.4运行期检查
21.5报告运行期检查错误
21.6本章总结
第22章栈和函数调用
22.1简介
22.2栈的创建过程
22.3CALL和RET指令
22.4局部变量和栈帧
22.5帧指针省略(FPO)
22.6栈指针检查
22.7调用协定
22.8栈空间的增长和溢出
22.9栈下溢
22.10缓冲区溢出
22.11变量检查
22.12基于Cookie的安全检查
22.13本章总结
第23章堆和堆检查
23.1理解堆
23.2堆的创建和销毁
23.3分配和释放堆块
23.4堆的内部结构
23.5低碎片堆(LFH)
23.6堆的调试支持
23.7栈回溯数据库
23.8堆溢出和检测
23.9页堆
23.10准页堆
23.11CRT堆
23.12CRT堆的调试堆块
23.13CRT堆的调试功能
23.14堆块转储
23.15泄漏转储
23.16本章总结
第24章异常处理代码的编译
24.1概览
24.2FS:[0]链条
24.3遍历FS:[0]链条
24.4执行异常处理函数
24.5__try{}__except()结构
24.6安全问题
24.7本章总结
第25章调试符号
25.1名称修饰
25.2调试信息的存储格式
25.3目标文件中的调试信息
25.4PE文件中的调试信息
25.5DBG文件
25.6PDB文件
25.7有关的编译和链接选项
25.8PDB文件中的数据表
25.9本章总结
第5篇可调试性
第26章可调试性概览
26.1简介
26.2Showstopper和未雨绸缪
26.3基本原则
26.4不可调试代码
26.5可调试性例析
26.6与安全、性能和商业秘密的关系
26.7本章总结
第27章可调试性的实现
27.1角色和职责
27.2可调试架构
27.3通过栈回溯实现可追溯性
27.4数据的可追溯性
27.5可观察性的实现
27.6自检和自动报告
27.7本章总结
第6篇调试器
第28章调试器概览
28.1TX-0计算机和FLIT调试器
28.2小型机和DDT调试器
28.3个人计算机和它的调试器
28.4调试器的功能
28.5分类标准
28.6实现模型
28.7经典架构
28.8HPD标准
28.9本章总结
第29章WinDBG及其实现
29.1WinDBG溯源
29.2C阶段的架构
29.3重构
29.4调试器引擎的架构
29.5调试目标
29.6调试会话
29.7接收和处理命令
29.8本章总结
第30章WinDBG用法详解
30.1工作空间
30.2命令概览
30.3用户界面
30.4输入和执行命令
30.5建立调试会话
30.6终止调试会话
30.7理解上下文
30.8调试符号
30.9事件处理
30.10控制调试目标
30.11单步执行
30.12使用断点
30.13控制进程和线程
30.14观察栈
30.15分析内存
30.16遍历链表
30.17调用目标程序的函数
30.18命令程序
30.19本章总结
附录A示例程序列表
附录BWinDBG标准命令列表
索引
点击展开
点击收起
— 没有更多了 —
内页较新,后边角有轻微水痕污渍。
以下为对购买帮助不大的评价