Debuggen von Assemblycode in WinDbg (klassisch)

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

Debuggerbefehlsfenster

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

Dissasembly-Fenster

Um das Fenster Disassembly zu öffnen oder zu wechseln, wählen Sie im Menü Ansicht die Option Dissasembly aus. (Sie können auch ALT+7 drücken oder die Schaltfläche Disassembly 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 Fensters Disassembly in WinDbg

Der Debugger nimmt einen Abschnitt des Arbeitsspeichers in Anspruch, interpretiert ihn als binäre Computeranweisungen und zerlegt ihn dann, um eine Assemblysprachversion der Computeranweisungen zu erstellen. Der resultierende Code wird im Fenster Disassembly angezeigt.

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

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

  • Um andere Speicherabschnitte anzuzeigen, wählen Sie die Schaltflächen Zurück oder Weiter aus, oder drücken Sie die TASTE PAGE UP oder PAGE DOWN. Diese Befehle zeigen disassemblierten Code aus den vorherigen oder folgenden Abschnitten des Arbeitsspeichers an. Durch Drücken der NACH-RECHTS-, NACH-LINKS-, NACH-OBEN- und NACH-UNTEN-TASTE können Sie im Fenster navigieren. Wenn Sie diese Schlüssel verwenden, um von der Seite zu wechseln, wird eine neue Seite angezeigt.

Das Fenster Disassembly verfügt über eine Symbolleiste mit zwei Schaltflächen und ein 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 oberen rechten Ecke des Fensters angezeigt wird. In der folgenden Liste werden einige der Menübefehle beschrieben.

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

  • Das Disassemblieren vor der aktuellen Anweisung bewirkt, dass die aktuelle Zeile in der Mitte des Fensters Disassemblierung platziert wird. Dieser Befehl ist die Standardoption. Wenn dieser Befehl gelöscht wird, wird die aktuelle Zeile am oberen Rand des Fensters Disassembly angezeigt, was Zeit spart, da die Umgekehrte Richtungsdemontage zeitaufwändig sein kann.

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

  • Quellzeile für jede Anweisung anzeigen zeigt die Quellzeilennummer an, die jeder Assemblyanweisung entspricht.

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

Weitere Informationen

Weitere Informationen zum Debuggen von Assemblys und zugehörigen Befehlen sowie eine vollständige Erläuterung der Assemblyanzeige finden Sie unter Debuggen im Assemblymodus.