Debuggen von WOW64
Anwendungen, die unter WOW64 ausgeführt werden, können auf zwei Arten debuggen:
- Verwenden Sie einen x86-gehosteten Debugger wie NTSD, WinDbg oder Visual Studio. Die 32-Bit-NTSD wird in %systemroot%\syswow64 für Einzelhandelsinstallationen installiert. Beachten Sie, dass x86-Debugger zum Debuggen von x86-Code verwendet werden können, aber nicht zum Disassemblieren oder Festlegen von Haltepunkten innerhalb der WOW64-Thunk-Ebene verwendet werden können, da es sich um nativen 64-Bit-Code handelt.
- Verwenden Sie einen nativen Debugger wie CDB, NTSD oder WinDbg und die WOW64-Debuggererweiterung, Wow64exts.dll. Wenn der native Debugger unterbrochen wird, während sich der Prozessor im x86-Modus befindet, stellt der Debugger den Prozess als x86-Prozess dar. Wenn sich der Prozessor im einheitlichen Modus befindet, stellt der Debugger den Prozess als nativ dar.
CDB, NTSD und WinDbg sind in Debugtools für Windows enthalten. Weitere Informationen finden Sie in der Dokumentation Debugtools für Windows .
Die Wow64exts-Debuggererweiterung wird mit WinDbg installiert. Verwenden Sie den Befehl !load wow64exts, um die Debuggererweiterung zu laden. In der folgenden Tabelle sind die Befehle der Debuggererweiterung !wow64exts aufgeführt.
Get-Help | BESCHREIBUNG |
---|---|
!wow64exts.sw | Wechselt zwischen x86 und nativem Modus. |
!wow64exts.k count | Gibt eine kombinierte 32-Bit-/64-Bit-Stapelablaufverfolgung ab. Wenn count angegeben ist, gibt der Befehl die ersten Adressen in jeder Stapelablaufverfolgung ab. |
!wow64exts.info | Gibt grundlegende Informationen über die PEB des Prozesses, den TEB des aktuellen Threads und die von WOW64 verwendeten Lokalen Threadspeichers (TLS) ab. |
!wow64exts.r Adresse | Gibt den Kontext für die angegebene Adresse ab. Wenn die Adresse nicht angegeben ist, gibt der Befehl den Kontext für den Prozessor ab. |