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.
Die Namen globaler Variablen werden in den Symboldateien gespeichert, die beim Kompilieren einer Anwendung erstellt werden. Der Debugger interpretiert den Namen einer globalen Variablen als virtuelle Adresse. Jeder Befehl, der eine Adresse als Parameter akzeptiert, akzeptiert auch den Namen einer Variablen. Aus diesem Grund können Sie alle Befehle verwenden, die unter "Zugreifen auf den Arbeitsspeicher durch virtuelle Adresse " beschrieben werden, um globale Variablen zu lesen oder zu schreiben.
Darüber hinaus können Sie den ? (Auswerten des Ausdrucks) Befehl verwenden, um die Adresse anzuzeigen, die einem beliebigen Symbol zugeordnet ist.
WinDbg stellt Benutzeroberflächenelemente bereit, die Sie verwenden können (zusätzlich zu Befehlen), um globale Variablen anzuzeigen und zu bearbeiten. Siehe Anzeigen und Bearbeiten globaler Variablen in WinDbg (klassisch).
Betrachten Sie das folgende Beispiel. Angenommen, Sie möchten die MyCounter globale Variable untersuchen, bei der es sich um eine 32-Bit-Ganzzahl handelt. Nehmen Sie auch an, dass der Standardradiix 10 ist.
Sie können die Adresse dieser Variablen abrufen und dann wie folgt anzeigen.
0:000> ? MyCounter
Evaluate expression: 1244892 = 0012fedc
0:000> dd 0x0012fedc L1
0012fedc 00000052
Die erste Befehlsausgabe teilt Ihnen mit, dass die Adresse MyCounter 0x0012FEDC ist. Sie können dann den Befehl d* (Speicher anzeigen) verwenden, um ein Doppelwort an dieser Adresse anzuzeigen. (Sie können auch 1244892 verwenden, bei dem es sich um die Dezimalversion dieser Adresse handelt. Die meisten C-Programmierer bevorzugen jedoch 0x0012FEDC.) Der zweite Befehl teilt Ihnen mit, dass der Wert von MyCounter 0x52 ist (Dezimalzahl 82).
Sie können diese Schritte auch im folgenden Befehl ausführen.
0:000> dd MyCounter L1
0012fedc 00000052
Verwenden Sie den folgenden Befehl, damit der Wert von MyCounter in die Dezimalzahl 83 geändert wird.
0:000> ed MyCounter 83
In diesem Beispiel wird die Dezimaleingabe verwendet, da dieses Format für eine ganze Zahl natürlicher erscheint. Die Ausgabe des Befehls "d\* " befindet sich jedoch weiterhin im Hexadezimalformat.
0:000> dd MyCounter L1 0012fedc 00000053