我正在調試WinDbg/SOS的mscorlib 的源代碼。我很好奇,如果你在彙編中看到它的地址,是否有可能得到託管函數的名字?例如,這是一些我看到的反彙編窗口代碼:如何從SOS中的jitted輸出獲取託管函數名稱?
00007ffd`7f035d7c 488d0d3d3af5ff lea rcx,[System_Private_CoreLib_ni+0x8797c0 (00007ffd`7ef897c0)]
00007ffd`7f035d83 e890728eff call System_Private_CoreLib_ni+0x20d018 (00007ffd`7e91d018)
00007ffd`7f035d88 488bf0 mov rsi,rax
00007ffd`7f035d8b b9874a0000 mov ecx,4A87h
00007ffd`7f035d90 e8834a91ff call System_Private_CoreLib_ni+0x23a818 (00007ffd`7e94a818)
00007ffd`7f035d95 488bc8 mov rcx,rax
00007ffd`7f035d98 e87356b9ff call System_Private_CoreLib_ni+0x4bb410 (00007ffd`7ebcb410)
00007ffd`7f035d9d 488bd0 mov rdx,rax
00007ffd`7f035da0 488bce mov rcx,rsi
00007ffd`7f035da3 e8e89fbdff call System_Private_CoreLib_ni+0x4ffd90 (00007ffd`7ec0fd90)
我想找出一些這些功能是call
-ed的名稱。我想,要使用的命令因爲這將是!dumpmd
,但沒有這些命令似乎工作:
!dumpmd 0x20d018
!dumpmd e890728eff
!dumpmd 00007ffd`7e91d018
他們都用「......是不是一個方法描述」作出迴應。那麼怎樣才能從程序集中獲得託管函數的名稱,或者這是不可能的?
的mscorlib最近更名爲System.Private.CoreLib
.NET的核心,所以這就是爲什麼你看到的那個,而不是mscorlib_ni
。