-
StackOverflow 文档
-
WinDbg 教程
-
用户模式应用调试
-
重要命令
记录你的工作
记住你做过的事情并保留长输出,这些输出无法保存在 WinDbg 的缓冲区中。有一个日志可用于重现调试步骤,例如在 Stack Overflow 上提问。
命令 |
目的 |
.logopen |
创建一个日志文件 |
.logclose |
关闭日志文件 |
.dump |
保存故障转储文件(当前调试会话的快照) |
使用符号
如果没有或有不正确的符号,你可能会收到错误信息并被误导。在 WinDbg 中开始工作之前,请确保你熟悉这些命令。另请参见如何在 WinDbg 中设置符号 。
命令 |
目的 |
.symfix |
设置或添加符号到官方 Microsoft 符号路径 |
.sympath |
设置或添加自己或第三方符号 |
.reload |
重新加载符号 |
.symopt |
定义符号处理选项 |
!sym |
控制符号加载 |
x |
检查符号 |
ln |
列出最近的符号 |
崩溃分析
找出发生了什么(在崩溃转储中)以及如何处理事件(在实时调试中)。
命令 |
目的 |
.exr |
显示异常记录 |
.lastevent |
显示上次活动 |
sx |
定义异常处理 |
!analyze |
分析崩溃或挂起 |
!avrf |
应用验证者 |
环境
检查进程名称和版本信息。
线程,调用堆栈,寄存器和内存
检查细节。
命令 |
目的 |
~ |
线程列表 |
r |
寄存器 |
k |
调用堆栈 |
d * |
显示内存 |
e * |
编辑记忆 |
s |
搜索记忆 |
.formats |
在数字格式之间转换 |
? |
评估表达 |
u * |
拆卸 |
a |
集合 |
!address |
记忆信息 |
控制目标
在实时调试中,控制执行。
命令 |
目的 |
g |
去/继续 |
gu |
上 |
p |
一小步 |
t |
跟踪(单步和输出寄存器) |
bp |
设置断点 |
bl |
断点列表 |
使用扩展
扩展可以提供显着的优势和增强。
命令 |
目的 |
.load |
加载扩展(完整路径) |
.loadby |
相对于模块的负载扩展 |
.chain |
显示加载的扩展名 |
.unload |
卸载扩展 |
停止调试
连接和分离
命令 |
目的 |
.tlist |
流程清单 |
.attach |
附加到过程 |
.create |
创建流程并附加 |
.childdbg |
定义子进程调试行为 |
.detach |
脱离过程 |
.kill |
杀死一个进程 |
.restart |
重启过程 |
WinDbg 的行为
命令 |
目的 |
.prefer_dml |
设置调试器标记语言处理 |
.effmach |
切换位 |
可用性命令
命令 |
目的 |
.cmdtree |
在单独的窗口中加载带有预定义命令的文本文件 |
得到帮助
命令 |
目的 |
.hh |
显示 WinDbg 命令的帮助手册 |