无法在Visual Studio 2010即时窗口中运行'dd'命令
问题描述:
我正在使用Visual Studio 2010中的Son of Strike(SOS)调试托管应用程序。我想从特定位置运行原始内存转储,但我得到“End of表达预期“错误。如果我附上WinDbg,那么我可以运行相同的'dd'命令。我该如何解决这个问题?无法在Visual Studio 2010即时窗口中运行'dd'命令
!clrstack -l
OS Thread Id: 0xd5c (3420)
Child SP IP Call Site
0050eeac 002700eb ConsoleApplication2.Program.Main(System.String[])
LOCALS:
0x0050eeb0 = 0x0240c178
0x0050eebc = 0x00000000
0050f0fc 6b4c21bb [GCFrame: 0050f0fc]
dd 0x0240c178
End of expression expected
dd 0x0050eeb0
End of expression expected
答
在即时窗口,您必须使用>dd 0x001AF2E0
才能使其正常工作。您必须在dd
之前输入>
。
dd 0x001AF2E0
End of expression expected
>dd 0x001AF2E0
0x001AF2E0 6d7c4938 ffffffff 001af34c 00000001
0x001AF2F0 002dd780 00000000 002dd780 ffffffff
0x001AF300 00000001 77a220f9 00000000 00713000
0x001AF310 002711a8 00000001 00000000 00000000
在命令窗口中,您只需键入dd 0x001AF2E0
。
答
输入.cordll,看看是否加载了sos dll。
例如:
0:000> .cordll
CLR DLL状态:已加载DLL C:\的Windows \ Microsoft.NET \框架\ V2.0.50727 \ mscordacwks.dll
该命令应该工作。我在我的测试中没有任何问题,使用托管和非托管代码。你如何在Visual Studio中加载sos dll? – Zipper 2012-04-05 01:19:02