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

使用WinDbg分析崩溃转储时,调用堆栈显示为十六进制,windbg,Windbg,当我使用下面的命令显示堆栈时,我只得到十六进制地址,即使在模块加载时也是如此(使用命令lm m xx检查): 有人能告诉我为什么吗?这对于.NET应用程序来说很正常。中间代码是程序集/DLL的一部分,您可以通过lm看到它 但是,中间代码永远不会自己执行。它由JIT编译器在运行时处理。JIT编译器分配一些内存(在DLL之外)并在那里发出汇编代码 由于该部分内存与DLL不直接相关,WinDbg仅将其显示为十六进制地址 要使用.NET,请加载SOS扩展并使用以下命令 .loadby sos clr !

当我使用下面的命令显示堆栈时,我只得到十六进制地址,即使在模块加载时也是如此(使用命令
lm m xx
检查):


有人能告诉我为什么吗?

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

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

由于该部分内存与DLL不直接相关,WinDbg仅将其显示为十六进制地址

要使用.NET,请加载SOS扩展并使用以下命令

.loadby sos clr
!dumpstack
!clrstack
.load <full path to>\sosex.dll
!mk
或者像这样的命令

.loadby sos clr
!dumpstack
!clrstack
.load <full path to>\sosex.dll
!mk
.load\sosex.dll
!mk