2014-02-25 11 views
5

Versucht, die Aufrufmethode einer EventHandler-Instanz zu finden, musste ich es tun und dann versuchen, herauszufinden, auf welche Methode sich _methodPtr bezog.Erhalte eine Funktionssignatur von PDB mit WinDBG

_methodPtr war in meinem Fall 32c0e0

ich es dd 32c0e0 mit herausgefunden (die die Methode Adresse enthält).

jedoch das erste, was ich versuchte, war bei 32c0e0 auf nicht verwalteten Code zu suchen, das war:

0:000> !U 32c0e0 
Unmanaged code 
0032c0e0 e8d55cf567  call mscorwks!PrecodeFixupThunk (68281dba) 
    ... etc ... 

PrecodeFixupThunk kein Export von mscorwks ist, und ich kann nicht anyting auf Google darüber finden. Ich denke, dass windbg den Anruf Lösung mscorwks.pdb mit ...

Meine Frage ist: Was ist PrecodeFixupThunk Signatur? Ich kann seinen Asm-Code mit x und !u finden, aber allgemeiner gibt es eine Möglichkeit, eine Funktionssignatur mit windbg zu erhalten?

[Bearbeiten] FYI:

0:000> x /v /t mscorwks!PrecodeFixupThunk 
pub global 68281dba 0 <NoType> mscorwks!PrecodeFixupThunk = <no type information> 

Antwort

2

Es hängt davon ab. Sie können Module mit privaten Symbolen oder öffentlichen Symbolen erstellen. Private Symbole enthalten alle Informationen zu Variablen, Typen und Funktionen. Öffentliche Symbole enthalten RVA für Variablen und Funktionen.

MS lädt normalerweise nur öffentliche Symbole oder öffentliche Symbole mit einigen Typdefinitionen.

sehen: http://msdn.microsoft.com/en-us/library/windows/hardware/ff553493(v=vs.85).aspx

+0

Sie für diesen informativen Link danken. Also wenn ich gut verstehe, mscorwks.pdb enthält 'PrecodeFixupThunk' Methodenname (und seine Adresszuordnung), aber keine weiteren Informationen? – Olivier

+0

Das stimmt. Und die zweite: 'Thunk' Postfix möglicherweise diese Funktion aus Assembler-Code generiert und hat keine gemeinsame Prolog/Epilog/Aufruf Konvention. –

+0

Du hast recht, es scheint so zu sein :) – Olivier

Verwandte Themen