使用WinDbg分析崩溃转储时,调用堆栈显示为十六进制

时间:2015-09-21 02:50:34

标签: windbg

当我使用下面的命令来显示堆栈时,我只是获取了十六进制地址,即使加载了模块(使用命令lm m xx检查):

0:014> k
Child-SP          RetAddr           Call Site
00000000`88f9b0e0 00000000`305e8a60 0x36f038d
00000000`88f9b0e8 00000000`305e8a60 0x305e8a60

有人可以告诉我为什么吗?

1 个答案:

答案 0 :(得分:1)

这是例如正常的.NET应用程序。中间代码是程序集/ DLL的一部分,您可以通过lm看到它。

但是,中间代码永远不会自行执行。它在运行时由JIT编译器处理。 JIT编译器分配一些内存(在DLL之外)并在那里发出汇编代码。

由于该部分内存与DLL无关,因此WinDbg仅将其显示为十六进制地址。

要使用.NET,请加载SOS扩展并使用

之类的命令
.loadby sos clr
!dumpstack
!clrstack
使用

等命令

或SOSEX

.load <full path to>\sosex.dll
!mk