图书介绍
软件调试PDF|Epub|txt|kindle电子书版本网盘下载
![软件调试](https://www.shukui.net/cover/1/32297699.jpg)
- 张银奎著 著
- 出版社: 北京:电子工业出版社
- ISBN:9787121064074
- 出版时间:2008
- 标注页数:1006页
- 文件大小:254MB
- 文件页数:1043页
- 主题词:软件-调试
PDF下载
下载说明
软件调试PDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第1篇 绪论1
第1章 软件调试基础3
第2篇 CPU的调试支持27
第2章 CPU基础29
第3章 中断和异常65
第4章 断点和单步执行75
第5章 分支记录和性能监视107
第6章 机器检查架构(MCA)133
第7章 JTAG调试147
第3篇 操作系统的调试支持163
第8章 Windows概要165
第9章 用户态调试模型193
第10章 用户态调试过程227
第11章 中断和异常管理273
第12章 未处理异常和JIT调试309
第13章 硬错误和蓝屏359
第14章 错误报告391
第15章 日志405
第16章 事件追踪421
第17章 WHEA445
第18章 内核调试引擎461
第19章 Windows的验证机制513
第4篇 编译器的调试支持539
第20章 编译和编译期检查541
第21章 运行库和运行期检查559
第22章 栈和函数调用581
第23章 堆和堆检查643
第24章 异常处理代码的编译711
第25章 调试符号739
第5篇 可调试性781
第26章 可调试性概览783
第27章 可调试性的实现801
第6篇 调度器833
第28章 调试器概览835
第29章WinDBG及其实现867
第30章winDBG用法详解905
附录A 示例程序列表999
附录B WinDBG标准命令列表1001
索引1003
第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示例:CpuWhere117
5.5性能监视123
5.6本章总结132
第6章 机器检查架构(MCA)133
6.1奔腾处理器的机器检查机制134
6.2 MCA135
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
第3篇 操作系统的调试支持163
第8章 Windows概要165
8.1简介165
8.2进程和进程空间167
8.3内核模式和用户模式176
8.4架构和系统部件184
8.5本章总结192
第9章 用户态调试模型193
9.1概览193
9.2采集调试消息196
9.3发送调试消息200
9.4调试子系统服务器(XP之后)203
9.5调试子系统服务器(XP之前)210
9.6比较两种模型219
9.7 NTDLL中的调试支持例程221
9.8调试API224
9.9本章总结226
第10章 用户态调试过程227
10.1调试器进程227
10.2被调试进程231
10.3从调试器中启动被调试程序234
10.4附加到已经启动的进程240
10.5处理调试事件243
10.6中断到调试器251
10.7输出调试字符串259
10.8终止调试会话266
10.9本章总结271
第11章 中断和异常管理273
11.1中断描述符表273
11.2异常的描述和登记280
11.3异常分发过程284
11.4结构化异常处理(SEH)290
11.5向量化异常处理(VEH)302
11.6本章总结308
第12章 未处理异常和JIT调试309
12.1简介309
12.2默认的异常处理器311
12.3未处理异常过滤函数318
12.4应用程序错误对话框328
12.5 JIT调试和Dr.Watson334
12.6顶层异常过滤函数340
12.7 Dr.Watson343
12.8 DRWTSN32的日志文件347
12.9用户态转储文件351
12.10本章总结357
第13章 硬错误和蓝屏359
13.1硬错误提示359
13.2蓝屏终止(BSOD)366
13.3系统转储文件371
13.4分析系统转储文件374
13.5辅助的错误提示方法380
13.6配置错误提示机制384
13.7防止滥用错误提示机制389
13.8本章总结390
第14章 错误报告391
14.1 WER 1.0392
14.2系统错误报告395
14.3 WER服务器端397
14.4 WER 2.0399
14.5 CER403
14.6本章总结404
第15章 日志405
15.1日志简介405
15.2 ELF的架构406
15.3 ELF的数据组织409
15.4察看和使用ELF日志413
15.5 CLFS的组成和原理414
15.6 CLFS的使用方法416
15.7本章总结420
第16章 事件追踪421
16.1简介421
16.2 ETW的架构422
16.3提供ETW消息424
16.4控制ETW会话425
16.5 消耗ETW消息427
16.6格式描述428
16.7 NT Kernel Logger432
16.8 Global Logger Session436
16.9 Crimson API440
16.10本章总结443
第17章 WHEA445
17.1目标和架构445
17.2错误源450
17.3错误处理过程452
17.4错误持久化457
17.5注入错误459
17.6本章总结459
第18章 内核调试引擎461
18.1概览462
18.2连接465
18.3启用475
18.4初始化478
18.5内核调试协议483
18.6与内核交互492
18.7建立和维持连接502
18.8 本地内核调试509
18.9本章总结511
第19章 Windows的验证机制513
19.1简介514
19.2驱动验证器的工作原理515
19.3使用驱动验证器521
19.4应用程序验证器的工作原理526
19.5使用应用程序验证器533
19.6本章总结537
第4篇 编译器的调试支持539
第20章 编译和编译期检查541
20.1程序的构建过程541
20.2编译543
20.3 Visual C++编译器544
20.4编译错误和警告549
20.5编译期检查551
20.6标准标注语言555
20.7本章总结558
第21章 运行库和运行期检查559
21.1 C/C++运行库559
21.2链接运行库562
21.3运行库的初始化和清理565
21.4运行期检查569
21.5报告运行期检查错误574
21.6本章总结580
第22章 栈和函数调用581
22.1简介581
22.2栈的创建过程585
22.3 CALL和RET指令590
22.4局部变量和栈帧595
22.5帧指针省略(FPO)604
22.6栈指针检查606
22.7调用协定609
22.8栈空间的增长和溢出616
22.9栈下溢623
22.10缓冲区溢出624
22.11变量检查628
22.12基于Cookie的安全检查636
22.13本章总结642
第23章 堆和堆检查643
23.1理解堆644
23.2堆的创建和销毁646
23.3分配和释放堆块649
23.4堆的内部结构654
23.5低碎片堆(LFH)661
23.6堆的调试支持662
23.7栈回溯数据库666
23.8堆溢出和检测670
23.9页堆677
23.10准页堆683
23.11 CRT堆688
23.12 CRT堆的调试堆块692
23.13 CRT堆的调试功能698
23.14堆块转储700
23.15泄漏转储704
23.16本章总结709
第24章 异常处理代码的编译711
24.1概览711
24.2 FS:[0]链条713
24.3遍历FS:[0]链条716
24.4执行异常处理函数721
24.5_try{}—except()结构724
24.6安全问题732
24.7本章总结737
第25章 调试符号739
25.1名称修饰739
25.2调试信息的存储格式742
25.3目标文件中的调试信息745
25.4PE文件中的调试信息753
25.5DBG文件762
25.6PDB文件764
25.7有关的编译和链接选项771
25.8PDB文件中的数据表775
25.9本章总结780
第5篇 可调试性781
第26章 可调试性概览783
26.1简介783
26.2 Showstopper和未雨绸缪784
26.3基本原则787
26.4不可调试代码792
26.5可调试性例析794
26.6与安全、性能和商业秘密的关系798
26.7本章总结799
第27章 可调试性的实现801
27.1角色和职责801
27.2可调试架构804
27.3通过栈回溯实现可追溯性808
27.4数据的可追溯性815
27.5可观察性的实现821
27.6自检和自动报告830
27.7本章总结832
第6篇 调试器833
第28章 调试器概览835
28.1TX-0计算机和FLIT调试器835
28.2小型机和DDT调试器837
28.3个人计算机和它的调试器841
28.4调试器的功能845
28.5分类标准852
28.6实现模型853
28.7经典架构859
28.8HPD标准862
28.9本章总结866
第29章 WinDBG及其实现867
29.1WinDBG溯源867
29.2C阶段的架构872
29.3重构875
29.4调试器引擎的架构881
29.5调试目标887
29.6调试会话892
29.7接收和处理命令899
29.8本章总结904
第30章 WinDBG用法详解905
30.1工作空间905
30.2命令概览908
30.3用户界面911
30.4输入和执行命令916
30.5建立调试会话923
30.6终止调试会话927
30.7理解上下文930
30.8调试符号933
30.9事件处理944
30.10控制调试目标951
30.11单步执行955
30.12使用断点962
30.13控制进程和线程969
30.14观察栈973
30.15分析内存978
30.16遍历链表987
30.17调用目标程序的函数992
30.18命令程序994
30.19本章总结997
附录A 示例程序列表999
附录B WinDBG标准命令列表1001
索引1003