Freigeben über


Anzeigen des Demontagecodes im Visual Studio-Debugger (C#, C++, Visual Basic, F#)

Das Fenster "Disassembly" zeigt Assemblycode an, der den anweisungen entspricht, die vom Compiler erstellt wurden. Wenn Sie verwalteten Code debuggen, entsprechen diese Assemblyanweisungen dem systemeigenen Code, der vom Just-in-Time-Compiler (Just-in-Time, JIT) erstellt wurde, nicht der vom Visual Studio-Compiler erstellten Microsoft-Zwischensprache (MSIL).

Hinweis

Um die Vorteile des Disassemblierungsfensters zu nutzen, verstehen oder lernen Sie die Grundlagen der Assemblysprachenprogrammierung kennen. Referenzmaterial für Intel-Anweisungssätze finden Sie im 2. Volume der Architekturhandbücher. Dieses Material gilt im Allgemeinen auch für AMD-Anweisungssätze.

Dieses Feature ist nur verfügbar, wenn das Debuggen auf Adressebene aktiviert ist. Es ist nicht für skript- oder SQL-Debugging verfügbar.

Zusätzlich zu Montageanweisungen kann das Fenster "Demontage " die folgenden optionalen Informationen anzeigen:

  • Speicheradresse, an der sich jede Anweisung befindet. Bei systemeigenen Anwendungen ist dies die tatsächliche Speicheradresse. Bei Visual Basic oder C# ist dies ein Offset vom Beginn der Funktion.

  • Quellcode, von dem der Assemblycode abgeleitet wird.

  • Codebytes oder die Bytedarstellungen des tatsächlichen Computers oder der MSIL-Anweisungen.

  • Symbolnamen für die Speicheradressen.

  • Zeilennummern, die dem Quellcode entsprechen.

Assemblysprachenanweisungen bestehen aus Mnemonics, die Abkürzungen für Anweisungsnamen und Symbole für Variablen, Register und Konstanten sind. Jeder Maschinensprachbefehl wird durch eine mnemonische Darstellung in der Assemblersprache repräsentiert, optional gefolgt von einem oder mehreren Symbolen.

Assemblycode basiert stark auf Prozessorregistern oder, für verwalteten Code, common language runtime registers. Sie können das Fenster „Disassemblierung“ zusammen mit dem Fenster „Register“ verwenden, in dem Sie die Registerinhalte untersuchen können.

Verwenden Sie das Speicherfenster, oder wählen Sie im Kontextmenü im Fenster "Disassembly" die Option "Code Bytes" aus, um Maschinencode-Anweisungen in ihrer rohen numerischen Form anstelle der Assemblysprache anzuzeigen.

Verwenden des Disassembierungsfensters

Öffnen Sie zum Aktivieren des Fensters "Demontage" den Bereich"Extras-Optionen>". Erweitern Sie den Abschnitt "Alle Einstellungen>debuggen>allgemein ", und aktivieren Sie das Kontrollkästchen "Debuggen auf Adressebene aktivieren" .

Öffnen Sie zum Aktivieren des Fensters "Demontage" das Dialogfeld"Extras-Optionen>". Erweitern Sie den Abschnitt "Debugging>Allgemein ", und aktivieren Sie das Kontrollkästchen "Debugging auf Adressebene aktivieren" .

Um das Fenster Disassembly während des Debuggens zu öffnen, wählen Sie Debug>Windows>> oder drücken Sie STRG + ALT + D.

Hinweis

Die angezeigten Dialogfelder und Menübefehle unterscheiden sich je nach den aktiven Einstellungen oder Editionen möglicherweise von der in diesem Artikel beschriebenen Benutzeroberfläche. Um Ihre Einstellungen zu ändern, wählen Sie Import- und Exporteinstellungen im Menü Extras aus. Weitere Informationen finden Sie unter Zurücksetzen aller Einstellungen.

Wenn Sie optionale Informationen aktivieren oder deaktivieren möchten, klicken Sie mit der rechten Maustaste in das Disassembly-Fenster und aktivieren oder deaktivieren Sie die gewünschten Optionen im Kontextmenü.

Ein gelber Pfeil am linken Rand markiert den aktuellen Ausführungspunkt. Bei systemeigenem Code entspricht der Ausführungspunkt dem Programmzähler der CPU. Dieser Speicherort zeigt die nächste Anweisung an, die in Ihrem Programm ausgeführt wird.

Bildlauf nach oben oder unten im Arbeitsspeicher

Wenn Sie Speicherinhalte in einem Speicherfenster oder im Disassemblierungsfenster anzeigen, können Sie die vertikale Bildlaufleiste verwenden, um im Speicherbereich nach oben oder unten zu navigieren.

  • Um eine Seite nach unten zu verschieben (zu einer höheren Speicheradresse wechseln), wählen Sie die vertikale Bildlaufleiste unterhalb des Bildlauffelds aus.

  • Um eine Seite nach oben zu verschieben (zu einer niedrigeren Speicheradresse wechseln), wählen Sie die vertikale Bildlaufleiste oberhalb des Daumens aus.

    Beachten Sie, dass die vertikale Bildlaufleiste nicht standardmäßig funktioniert. Der Adressraum eines modernen Computers ist groß. Es kann leicht passieren, dass Sie Ihren Kontext verlieren, wenn Sie den Scroll-Leiste-Daumen greifen und ihn zu einer beliebigen Stelle ziehen. Aus diesem Grund ist der Daumen federbelastet und bleibt immer in der Mitte der Bildlaufleiste. In systemeigenen Codeanwendungen können Sie nach oben oder unten blättern, aber nicht frei scrollen.

    In verwalteten Anwendungen ist die Demontage auf eine Funktion beschränkt, und Sie können normal scrollen.

    Beachten Sie, dass die höheren Adressen unten im Fenster angezeigt werden. Um eine höhere Adresse anzuzeigen, müssen Sie nach unten und nicht nach oben wechseln.

Eine Anweisung nach oben oder unten verschieben

  • Wählen Sie den Pfeil oben oder unten in der vertikalen Bildlaufleiste aus.