图书介绍

软件调试PDF|Epub|txt|kindle电子书版本网盘下载

软件调试
  • 张银奎著 著
  • 出版社: 北京:电子工业出版社
  • ISBN:9787121064074
  • 出版时间:2008
  • 标注页数:1006页
  • 文件大小:254MB
  • 文件页数:1043页
  • 主题词:软件-调试

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

软件调试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

热门推荐