WinDBG 是个非常强大的调试器,它设计了极其丰富的功能来支持各种调试任务,包括用户态调试、内核态调试、调试转储文件、远程调试等等。WinDBG 具有非常大的灵活性和可扩展性,用来满足各种各样的调试需求,比如用户可以自由定义调试事件的处理方式,编写调试扩展模块来定制和补充WinDBG 的调试功能。
尽管WinDBG 是个典型的窗口程序,但是它的大多数调试功能还是以手工输入命令的方式来工作的。目前版本的WinDBG 共提供了20 多条标准命令,140 多条元命令(Meta-commands),和难以计数的大量扩展命令。学习和灵活使用这些命令是学习WinDBG 的关键,也是难点。上一章我们从设计的角度分析了WinDBG,本章将从使用(用户)的角度介绍WinDBG。我们先介绍工作空间的概念和用法(第1 节),然后介绍命令的分类和不同种类的命令提示符(第2节)。第3 节介绍不同的调试模式,也就是如何与不同特征的调试目标建立调试会话。第4 节介绍上下文的概念和在调试时应该如何切换和控制上下文。第5 节介绍调试事件和如何定制调试事件的处理方式。从第6 节到第9 节我们将分别介绍如何在WinDBG 中完成典型的调试操作,比如控制调试目标(第6 节)、设置断点(第7 节)、观察栈(第8 节)以及如何观察和修改数据(第9节)。
1.工作空间
2.命令预览
3.用户界面
4.输入和执行命令
5.建立调试会话
6.终止调试会话
7.理解上下文
8.调试符号
9.事件处理
10.控制调试目标
11.使用断点
12.观察栈
13.分析内存
14.遍历链表
15.调用目标程序函数
16.命令程序
17.控制进程和线程
18.总结