.net 使用WinDBG从PDB获取函数签名

.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)

试图找到EventHandler实例的调用方法,我必须!这样做,然后试着找出
\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'后缀可能会注意到这个函数是由汇编代码生成的,没有常见的序言/尾声/调用约定。