剧集

碎片整理工具:#13 - WinDbg

在碎片整理工具的这个情节中,Andrew Richards 和 Larry Larsen 开始引导你浏览适用于 Windows 的调试工具(特别是 WinDbg)。 WinDbg 是支持用户模式调试进程或计算机内核模式调试的调试器。

第一个 WinDbg 安装版将系统配置为通过调整后的上下文菜单打开转储文件。 它演示如何将 WinDbg 设置为 (AeDebug) 事后调试器,以及如何使用 ProcDump v5.1 执行相同的操作,但将进程捕获为转储文件。 然后,它开始解释调试的一些基本概念:调用堆栈(k)、寄存器(r)和异常上下文记录(.ecxr)。

请确保观看 Defrag Tools 第 1 集,了解如何获取 适用于 Windows 的调试工具以及如何设置符号和源代码解析所需的环境变量的说明。

资源:适用于 Windows 7 和 .NET Framework 4 的 Microsoft Windows SDK
Sysinternals ProcDump

时间线:[00:00] - Windows 8 正式版(正式版)
[02:45] - WinDbg -IA - 注册文件关联
[05:45] - 自定义上下文菜单
[10:15] - WinDbg -I - 注册事后调试器
[11:07] - 自定义 AeDebug: -c “.jdinfo %p”
[15:00] - ProcDump v5.1: -i
[18:00] - Windows 错误报告内部
[21:48] - 寄存器(r)
[29:50] - 异常上下文记录(.ecxr)
[32:01] - 示例 - NT 调试博客
[34:02] - MSJ 杂志 - 在胡子下
[35:20] - Intel 开发人员手册
[38:40] - 下周,调用堆栈、局部变量和 .NET/Silverlight 扩展

NT 调试博客:</archive/blogs/ntdebugging/>

自定义上下文菜单 (WinDbg -IA):

Windows 注册表编辑器版本 5.00 [HKEY_CLAS标准版S_ROOT.dmp] @=“WinDbg.DumpFile.1”

[HKEY_CLAS标准版S_ROOT\WinDbg.DumpFile.1] @=“WinDbg 事后转储文件” [HKEY_CLAS标准版S_ROOT\WinDbg.DumpFile.1\DefaultIcon] @=“C:\debuggers\windbg.exe”,-3002“ [HKEY_CLAS标准版S_ROOT\WinDbg.DumpFile.1\shell] @=”Open”

[HKEY_CLAS标准版S_ROOT\WinDbg.DumpFile.1\shell\Open] @=“Open x&64” [HKEY_CLAS标准版S_ROOT\WinDbg.DumpFile.1\shell\Open\command] @=“”C:\debuggers\windbg.exe“ -z ”%1“ -c ”.prefer_dml 1“”

[HKEY_CLAS标准版S_ROOT\WinDbg.DumpFile.1\shell\Open_x86] @=“Open x&86” [HKEY_CLAS标准版S_ROOT\WinDbg.DumpFile.1\shell\Open_x86\command] @=“”C:\debuggers_x86\windbg.exe“ -z ”%1“ -c ”.prefer_dml 1“” 自定义 AeDebug (WinDbg -I):

Windows 注册表编辑器版本 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug] “Auto”=“1” “Debugger”=“”C:\debuggers\windbg.exe“ -p %ld -e %ld -c ”.jdinfo %p“”

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows NT\CurrentVersion\AeDebug]“Auto”=“1” “Debugger”=“C:\debuggers_x86\windbg.exe” -p %ld -e %ld -c “.jdinfo %p””