Zugreifen auf lokale Variablen
Lokale Variablen, wie globale Variablen, werden in den Symboldateien gespeichert. Und wie bei globalen Variablen interpretiert der Debugger ihre Namen als Adressen. Sie können auf die gleiche Weise gelesen und geschrieben werden wie globale Variablen. Wenn Sie jedoch für einen Befehl angeben müssen, dass ein Symbol lokal ist, stellen Sie dem Symbol ein Dollarzeichen ( $ ) und ein Ausrufezeichen ( ! ) voran, wie in $!var
.
Visual Studio und WinDbg stellen Benutzeroberflächenelemente bereit, die Sie (zusätzlich zu Befehlen) verwenden können, um lokale Variablen anzuzeigen und zu bearbeiten. Weitere Informationen finden Sie unter Anzeigen und Bearbeiten lokaler Variablen in WinDbg (Klassisch).
Sie können auch die folgenden Methoden verwenden, um lokale Variablen anzuzeigen, zu ändern und zu verwenden:
Der Befehl dv (Lokale Variablen anzeigen) zeigt die Namen und Werte aller lokalen Variablen an.
Mit der Erweiterung !for_each_local können Sie einen einzelnen Befehl wiederholt ausführen, einmal für jede lokale Variable.
Es gibt jedoch einen hauptunterschied zwischen lokalen und globalen Variablen. Wenn eine Anwendung ausgeführt wird, hängt die Bedeutung lokaler Variablen vom Speicherort des Programmindikators ab, da sich der Bereich solcher Variablen nur auf die Funktion erstreckt, in der sie definiert sind.
Der Debugger interpretiert lokale Variablen entsprechend dem lokalen Kontext. Standardmäßig entspricht dieser Kontext dem Speicherort des Programmindikators. Der Debugger kann jedoch den Kontext ändern. Weitere Informationen zum lokalen Kontext finden Sie unter Lokaler Kontext.
Wenn der lokale Kontext geändert wird, wird das Fenster Lokal sofort aktualisiert, um die neue Sammlung lokaler Variablen widerzuspiegeln. Der Befehl dv zeigt auch die neuen Variablen an. Alle diese Variablennamen werden dann von den zuvor beschriebenen Speicherbefehlen ordnungsgemäß interpretiert. Anschließend können Sie diese Variablen lesen oder in diese Schreiben schreiben.