无法在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 
+0

该命令应该工作。我在我的测试中没有任何问题,使用托管和非托管代码。你如何在Visual Studio中加载sos dll? – Zipper 2012-04-05 01:19:02

在即时窗口,您必须使用>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