WinDbg + SOS.dll 初始设置

安装好 WinDbg 以后,在系统环境中设置符号和扩展搜索路径。

uploads/200904/10_225441_1.png

_NT_DEBUGGER_EXTENSION_PATH=C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727
_NT_SYMBOL_PATH=SRV*D:/Program/Symbols*http://msdl.microsoft.com/download/symbols

"D:/Program/Symbols" 是符号文件的本地缓存路径,可根据自己的设置替换。

启动 WinDbg 开始调试。

1. 快捷键 "Ctrl + E" 打开一个托管程序。

Microsoft (R) Windows Debugger Version 6.9.0003.113 X86
Copyright (c) Microsoft Corporation. All rights reserved.

CommandLine: "D:/Temp/Learn.CUI.exe"
Symbol search path is: srv*D:/Program/Symbols* http://msdl.microsoft.com/download/symbols
Executable search path is: 
ModLoad: 00400000 00408000 Learn.CUI.exe
ModLoad: 7c920000 7c9b3000 ntdll.dll
ModLoad: 79000000 79046000 C:/WINDOWS/system32/mscoree.dll
ModLoad: 7c800000 7c91e000 C:/WINDOWS/system32/KERNEL32.dll
(b8.220): Break instruction exception - code 80000003 (first chance)
eax=00251eb4 ebx=7ffdf000 ecx=00000001 edx=00000002 esi=00251f48 edi=00251eb4
eip=7c92120e esp=0012fb20 ebp=0012fc94 iopl=0 nv up ei pl nz na po nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000202
ntdll!DbgBreakPoint:
7c92120e cc int 3

2. 可以用相关指令查看我们设置的路径。

0:000>  .sympath
Symbol search path is: srv*D:/Program/Symbols* http://msdl.microsoft.com/download/symbols
0:000>  .extpath
Extension search path is: C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727;C:/Program Files/Debugging Tools for Windows (x86)/WINXP;C:/Program Files/Debugging Tools for Windows (x86)/winext;C:/Program Files/Debugging Tools for Windows (x86)/winext/arcade;C:/Program Files/Debugging Tools for Windows (x86)/pri;C:/Program Files/Debugging Tools for Windows (x86);C:/Program Files/Debugging Tools for Windows (x86)/winext/arcade;C:/WINDOWS/system32;C:/WINDOWS;C:/WINDOWS/System32/Wbem;C:/Program Files/ThinkPad/ConnectUtilities;c:/Program Files/Microsoft SQL Server/90/Tools/binn/

3. 载入 SOS.dll,开始一个调试过程。

0:000>  sxe ld:mscorjit
0:000>  g
ModLoad: 79060000 790bb000 c:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorjit.dll
eax=00000000 ebx=00000000 ecx=00d20000 edx=7c92e4f4 esi=00000000 edi=00000000
eip=7c92e4f4 esp=0012e56c ebp=0012e660 iopl=0 nv up ei ng nz ac pe nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000296
ntdll!KiFastSystemCallRet:
7c92e4f4 c3 ret
0:000>  .load sos
0:000>  !clrstack -a
OS Thread Id: 0x220 (0)
ESP EIP 
0012f478 7c92e4f4 [PrestubMethodFrame: 0012f478] Learn.CUI.Program.Main(System.String[])
0012f69c 7c92e4f4 [GCFrame: 0012f69c]

--------------

附: 上述方法似乎会影响 Visual Studio,导致调试启动缓慢。

改用如下方法:

(1) 在 Windbg "File -> Symbol Search Path" 窗口中输入Symbol 搜索路径,然后单击 "File -> Save Workspace" 保存设置。

uploads/200904/16_202003_snap5.png


(2) 将 "C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727" 添加到系统路径末尾。

uploads/200904/16_201956_snap4.png

Path = %SystemRoot%/system32;%SystemRoot%;%SystemRoot%/System32/Wbem;c:/Program Files/Microsoft SQL Server/90/Tools/binn/;C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值