Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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, d. h. 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
Klicken Sie unter Extras>> auf Debugging auf Adressebene aktivieren, um das Fenster Disassemblierung zu 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 den in diesem Artikel beschriebenen Befehlen. 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.
Für einen Bildlauf nach unten (Navigieren zu einer höheren Speicheradresse) klicken Sie auf die vertikale Bildlaufleiste unter dem Bildlauffeld.
Für einen Bildlauf nach oben (Navigieren zu einer niedrigeren Speicheradresse) klicken Sie auf die vertikale Scrollleiste über dem Bildlauffeld.
Beachten Sie auch, dass das Verhalten der vertikalen Bildlaufleiste nicht dem Standardverhalten entspricht. Der Adressbereich eines modernen Computers ist äußerst groß, und eine Suche kann leicht fehlschlagen, wenn Sie das Bildlauffeld der Bildlaufleiste an eine zufällige Position ziehen. Aus diesem Grunde verhält sich das Bildlauffeld, als wäre es beidseitig mit einer Zugfeder verbunden, und verbleibt stets 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.
Sie werden feststellen, 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
- Klicken Sie auf den Pfeil am oberen oder unteren Rand der vertikalen Bildlaufleiste.