.net 使用WinDBG从PDB获取函数签名
试图找到EventHandler实例的调用方法,我必须!这样做,然后试着找出.net 使用WinDBG从PDB获取函数签名,.net,windbg,pdb-files,.net,Windbg,Pdb Files,试图找到EventHandler实例的调用方法,我必须!这样做,然后试着找出\u methodPtr所指的方法 \u methodPtr在我的案例中是32c0e0 我使用dd32c0e0(其中包含方法地址)算出了它 但是,我尝试的第一件事是查看32c0e0处的非托管代码,它是: 0:000> !U 32c0e0 Unmanaged code 0032c0e0 e8d55cf567 call mscorwks!PrecodeFixupThunk (68281dba)
\u methodPtr
所指的方法
\u methodPtr
在我的案例中是32c0e0
我使用dd32c0e0
(其中包含方法地址)算出了它
但是,我尝试的第一件事是查看32c0e0处的非托管代码,它是:
0:000> !U 32c0e0
Unmanaged code
0032c0e0 e8d55cf567 call mscorwks!PrecodeFixupThunk (68281dba)
... etc ...
Precodefexupthunk不是mscorwks的导出,我在谷歌上找不到任何关于它的信息。
我猜windbg正在使用mscorwks.pdb解析呼叫
我的问题是:什么是predefixupthunk签名?我可以使用x
和找到它的asm代码!u
,但更一般地说,有没有一种方法可以使用windbg获取函数签名?
[编辑]
供参考:
0:000> x /v /t mscorwks!PrecodeFixupThunk
pub global 68281dba 0 <NoType> mscorwks!PrecodeFixupThunk = <no type information>
0:000>x/v/t mscorwks!前驱体
酒吧全球68281dba 0 mscorwks!Precodefexupthunk=
视情况而定。您可以使用专用符号或公共符号构建模块。专用符号包含有关变量、类型和函数的所有信息。公共符号包含变量和函数的RVA
MS通常只上传公共符号或带有某些类型定义的公共符号
见:
感谢您提供此信息丰富的链接。所以,如果我理解得很好,mscorwks.pdb包含“precodefxupthunk”方法名(及其地址映射),但没有进一步的信息?没错。第二个:'Thunk'后缀可能会注意到这个函数是由汇编代码生成的,没有常见的序言/尾声/调用约定。