Teilen über


Debuggen von Assembler-Code in WinDbg (Classic)

In WinDbg können Sie Assemblycode anzeigen, indem Sie Befehle eingeben oder das Fenster "Disassembly" verwenden.

Debugger-Befehlsfenster

Sie können Assemblycode anzeigen, indem Sie im Fenster "Debuggerbefehl" die Befehle "u", "ub", "uu" (Unassemble) eingeben.

Disassemblierungsfenster

Um das Fenster "Disassembly" zu öffnen oder zu wechseln, wählen Sie im Menü Ansicht aus. (Sie können auch ALT+7 drücken oder die Schaltfläche "Disassemblierung" auf der Symbolleiste auswählen. ALT+UMSCHALT+7 schließt das Disassemblierungsfenster.)

Der folgende Screenshot zeigt ein Beispiel für ein Disassembly-Fenster.

Screenshot des Disassemblierungsfensters in WinDbg.

Der Debugger verwendet einen Abschnitt des Arbeitsspeichers, interpretiert ihn als Binäre Computeranweisungen und zerlegt ihn dann, um eine Assemblysprache der Computeranweisungen zu erstellen. Der resultierende Code wird im Fenster "Disassembly" angezeigt.

Im Fenster "Disassembly" können Sie die folgenden Aktionen ausführen:

  • Um einen anderen Speicherabschnitt zu zerlegen, geben Sie im Feld "Offset " die Adresse des Speichers ein, den Sie zerlegen möchten. (Sie können nach der Eingabe der Adresse die EINGABETASTE drücken, müssen aber nicht.) Im Fenster "Disassembly" wird Code angezeigt, bevor Sie die Adresse vollständig eingegeben haben. Sie können diesen Code ignorieren.

  • Wenn Sie andere Speicherabschnitte anzeigen möchten, wählen Sie die Schaltflächen "Zurück " oder "Weiter " aus, oder drücken Sie die BILD-AUF- oder BILD-AB-TASTE. Diese Befehle zeigen zerlegten Code aus den vorherigen oder folgenden Speicherabschnitten an. Durch Drücken der Pfeil-nach-rechts-Taste, Pfeil-nach-links-Taste, Pfeil-nach-oben-Taste und Pfeil-nach-unten-Taste können Sie im Fenster navigieren. Wenn Sie diese Tasten verwenden, um von der Seite zu wechseln, wird eine neue Seite angezeigt.

Das Disassemblierungsfenster verfügt über eine Symbolleiste mit zwei Schaltflächen und einem Kontextmenü mit zusätzlichen Befehlen. Um auf das Menü zuzugreifen, halten Sie die Titelleiste gedrückt (oder klicken Sie mit der rechten Maustaste darauf), oder wählen Sie das Symbol aus, das in der Nähe der oberen rechten Ecke des Fensters angezeigt wird. In der folgenden Liste werden einige der Menübefehle beschrieben.

  • Wechseln Sie zur aktuellen Adresse öffnet das Quellfenster mit der Quelldatei, die der ausgewählten Zeile im Disassembly-Fenster entspricht, und hebt diese Zeile hervor.

  • Disassemblierung vor der aktuellen Anweisung bewirkt, dass die aktuelle Zeile in der Mitte des Disassemblierungsfensters platziert wird. Dieser Befehl ist die Standardoption. Wenn dieser Befehl deaktiviert wird, wird die aktuelle Zeile oben im Disassemblierungsfenster angezeigt, was Zeit spart, da die Rückwärtsdisassemblierung zeitaufwändig sein kann.

  • Wenn Sie Anweisungen aus der aktuellen Quellzeile hervorheben , werden alle Anweisungen angezeigt, die der aktuellen Quellzeile entsprechen. Häufig entspricht eine einzelne Quellzeile mehreren Montageanweisungen. Wenn Code optimiert wurde, sind diese Assemblyanweisungen möglicherweise nicht aufeinander folgenden. Mit diesem Befehl können Sie alle Anweisungen finden, die aus der aktuellen Quellzeile zusammengestellt wurden.

  • Zeige die Quellzeile für jede Anweisung zeigt die Zeilennummer der Quellzeile an, die jeder Assembleranweisung entspricht.

  • Die Quelldatei für jede Anweisung anzeigen zeigt den Namen der Quelldatei an, der jeder Assemblyanweisung entspricht.

Siehe auch

Weitere Informationen zum Debuggen von Assemblys und verwandten Befehlen und einer vollständigen Erläuterung der Assemblyanzeige finden Sie unter Debuggen im Assemblymodus.