我假设没有为您的应用程序创建本机映像(使用NGen)。在这种情况下,模块(DLL)只包含永远不会执行的IL代码。因此,从本机的角度来看,不会有任何堆栈指向模块内部。
相反,IL代码将被JIT编译到内存中的另一个位置,例如在您的情况下为7fe9a5cda8。这是真正的代码执行的地方,所以这是您从本机端看到的。
要将JIT编译的指令还原为其.NET方法描述符,请执行以下操作:
0:000> .symfix
0:000> .loadby sos mscorwks ; *** .NET 2
0:000> .loadby sos clr ; *** .NET 4
0:000> !ip2md 7fe9a5cdaf8
然后,输出应显示.NET方法名(此处示例,因为我没有您的转储):
MethodDesc: 000007ff00033450
Method Name: ManagedService.Program.Main()
Class: 000007ff00162438
MethodTable: 000007ff00033460
mdToken: 0600001f
Module: 000007ff00032e30
IsJitted: yes
CodeAddr: 000007ff00170120