WinDBG高级调试技术全解析
1. 概述
WinDBG是一款功能强大的调试工具,与Visual Studio .NET调试器不同,它更侧重于操作系统开发和复杂问题的调试。它能提供真实的内存断点、改进的小型转储文件二进制处理,还能查看完整的操作系统堆和所有句柄信息。下面将介绍使用WinDBG前的准备工作、基本设置、常见调试场景及相关命令,以及处理转储文件和SOS调试扩展的方法。
2. 使用前的准备
2.1 安装SDK
若考虑编写WinDBG扩展,需安装Debugging Tools for Windows中的SDK。安装时选择自定义安装,勾选SDK并将其安装到本地硬盘。
2.2 了解相关工具
Debugging Tools for Windows还包含其他实用工具,如下表所示:
| 程序 | 描述 |
| — | — |
| CDB.EXE | 与NTSD相同,但启动时使用现有命令外壳 |
| LOGGER.EXE, LOGVIEWER.EXE | 日志系统,记录API调用、参数和返回值 |
| LIST.EXE | 基于控制台的文本文件列表实用程序 |
| UMDH.EXE | 用户模式堆转储实用程序 |
| TLIST.EXE | 将当前运行的进程列表显示到控制台窗口 |
| KILL.EXE | 绝对进程杀手,可从内存中移除任何用户模式进程 |
| BREAKIN.EXE | 强制在命令行指定的进程中调用DebugBreak |
2.3 阅读文档
在启动WinDBG之前,