什么是WinDBG?
WinDbg是微软开发的免费源码级调试工具。Windbg可以用于Kernel模式调试和用户模式调试,还可以调试Dump文件。由于大部分程序员不需要做Kernel模式调试, 我在这篇文章中不会介绍Kernel模式调试。Kernel模式调试对学习Windows核心极有帮助。如果你对此感兴趣,可以阅读Inside Windows 2000和Windbg所带的帮助文件。
这篇文章得主要目的是介绍WINDBG的主要功能以及相关的命令。关于这些命令的详细语法,请参阅帮助文件。对文章中提到的许多命令,WINDBG有相应的菜单选项。
如何得到帮助
在命令(Command)窗口中输入.hh 命会调出帮助文件令。
.hh keyword
会显示关于keyword的详细命令。
启动Debugger
Windbg可以用于如下三种调试:
- 远程调试:你可以从机器A上调试在机器B上执行的程序。具体步骤如下:
? 在机器B上启动一个调试窗口(Debug Session)。你可以直接在Windbg下运行一个程序或者将Windbg附加(Attach)到一个进程。
? 在机器B的Windbg命令窗口上启动一个远程调试接口(remote):
.server npipe:pipe=PIPE_NAME
PIPE_NAME是该接口的名字。
? 在机器A上运行:
windbg –remote npipe:server=SERVER_NAME,pipe=PIPE_NAME