[关闭]
@zoand 2019-08-23T11:43:56.000000Z 字数 742 阅读 1781

windbg调试内存加载DLL模块

VisualStudio windbg


0x01. 设置 windbg 为默认调试器

windows nt 程序崩溃时,自动弹出,windows停止工作,可设置默认调试器:
运行:Regedit->打开windows注册表:
32位系统:

  1. HKEY_LOCAL_MACHINE/SOFTWARE/Microsoft/Windows NT/CurrentVersion/AeDebug/Debugger

64位系统:

  1. HKEY_LOCAL_MACHINE/SOFTWARE/Wow6432Node/Microsoft/Windows NT/CurrentVersion/AeDebug/Debugger

键值简介:
auto
0:当程序崩溃时弹出对话框,有调试按钮可点
1:自动载入默认调试器进行调试
Debugger 值:
默认:"C:\WINDOWS\system32\vsjitdebugger.exe" -p %ld -e %ld"
修改:"C:\Program Files (x86)\Debugging Tools for Windows (x86)\windbg.exe" -p %ld -e %ld

0x02. 查看/追加符号路径

  1. !sympath
  2. !sympath+ C:\demo\x64\Release

将要调试的内存加载DLL的 pdb 文件目录追加到符号路径列表中

0x03. 查看地址对应的模块

  1. !address 0x00000001`8006c3c6

查看崩溃的地址处在哪个 ImageBase

0x04. 指定内存加载DLL基址

  1. .reload /i dllname=00000001`80000000

加载对应的 pdb 符号文件对应到指定 ImageBase

0x05. 再次查看调用栈信息

  1. kv

这时就可以看到完整的、带符号的调用栈信息了。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注