我有一个崩溃转储,应用程序肯定会在 JIT 优化的汇编代码中崩溃。我知道方法的起始地址。如何使用 Windbg 和 SOS 扩展找到它的名称?
目前我只是探索域中的每个程序集,然后在每个程序集中我转储所有模块,然后在每个模块中我转储方法表,希望某些方法地址等于我搜索的方法。它需要我永恒......
我有一个崩溃转储,应用程序肯定会在 JIT 优化的汇编代码中崩溃。我知道方法的起始地址。如何使用 Windbg 和 SOS 扩展找到它的名称?
目前我只是探索域中的每个程序集,然后在每个程序集中我转储所有模块,然后在每个模块中我转储方法表,希望某些方法地址等于我搜索的方法。它需要我永恒......
您可以使用ip2mdsos 命令获取 jitted 代码的方法名称。
0:016> k
# Child-SP RetAddr Call Site
00 00000000`013fe688 00007ffb`4567ddb8 win32u!NtUserWaitMessage+0x14
01 00000000`013fe690 00007ffb`45611535 System_Windows_Forms_ni+0x2cddb8
0:016> !ip2md 00007ffb`45611535
MethodDesc: 00007ffb454a25e8
Method Name: System.Windows.Forms.Application+ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr, Int32, Int32)
Class: 00007ffb4540c9f8
MethodTable: 00007ffb45743f78
mdToken: 00000000060052f3
Module: 00007ffb453b1000
IsJitted: yes
CodeAddr: 00007ffb45610fd0
Transparency: Safe critical