Psydovariablen für den Visual Studio Debugger

Eine Kurzübersicht

Zusammenfassung der Visual Studio Debugger Variablen und Formatanweisungen.

Variablen

Variable Beschreibung
$err Letzter Fehlercode. (Rückgabe von GetLastError) z.B. $err,hr um den Errorcode als HR-Result auszuwerten.
$handles Anzahl der Handles für die aktuelle Applikation.
$vframe Adresse des aktuellen Stackframe.
$TID Thread ID für den aktuellen Thread.
$ENV Größe des Environment block. (s.u.)
$CMDLINE Länge des Command line string. (s.u.)
reg-name, $reg-name, @reg-name Inhalt des Registers. Wenn es zu einer Überdeckung mit einer Variablen (global, oder lokal) oder Funktion kommt, muss ein $- oder @-Zeichen voran gestellt werden.
$clk Zeit in Clock cycles.
$user Struktur mit Benutzerinformation für die laufende Anwendung.

Erweiterungen für C# & VB

Variable Beschreibung
$exception Displays information on the last exception. If no exception has occurred, evaluating $exception displays an error message. In Visual C# only, when the Exception Assistant is disabled, $exception is automatically added to the Locals window when an exception occurs.
$ReturnValue Letzter Returnwert. (neu VS2013)

Anmerkungen

$ENV:
Wenn man in der Value-Spalte einen Wert eingibt (Ganzzahl), dann erscheint im Output-Fenster der Inhalt des Environment blocks.
$CMDLINE:
Wenn man in der Value-Spalte einen Wert eingibt (Ganzzahl), dann erscheint im Output-Fenster der Inhalt der Kommando-Zeile.

Formatierungen

Symbol Format Beispiel Anzeige
d,i Integer 0xF000F065, d -268373915
u Integer (unsigned) 0x0065, u 101
o Integer (unsigned octal) 0xF065, o 0170145
x,X Integer (hexadecimal) 61541, x 0x0000F065
l,h long or short prefix for: d, i, u, o, x, X 00406042,hx 0x0c22
f Double (3./2.), f 1.500000
e wissenschaftliche Notierung (3./2.), e 1.500000e+000
g kurze Darstellung (wie printf) (3./2.), g 1.5
c char 0x0065, c 101 'e'
s String 0x0012fde8, s "Hello world"
su Unicode String 0x0012fde8, su "Hello world"
s8 UTF-8 String 0x0012fde8, s8 "Hello world"
hr HRESULT oder Win32 error code. 0x00000000L, hr S_OK
wc window class flag. 0x00000040, wc WC_DEFAULTCHAR
wm Windows message numbers 0x0010, wm WM_CLOSE
arr,N Anzeige von Felder arr,3 0x01234567 { 1, 2, 3 }

Short-Cuts

Die wichtigsten Short-Cuts, die einem schnell die benötigten Informationen beim Debuggen anzeigen:

Tastaturkürzel Altern. Kürzel Fenster / Kommando
<Alt>-2 <Ctrl><Alt>-O Output-Fenster
<Alt>-4 <Ctrl><Alt>-V, L Lokale Variablen-Fenster (Variablen, Auto)
- <Ctrl><Alt>-V, A Autos-Fenster (Variablen, Auto)
- <Ctrl><Alt>-V, T This-Fenster (Variablen, This)
<Alt>-5 <Ctrl><Alt>-G Registers-Fenster
<Alt>-6 <Ctrl><Alt>-M,1 Memory-Fenster (1-4 für Memory Fenster 1-4)
- <Ctrl><Alt>-W,1 Watch-Fenster (1-4 für Watch-Fenster 1-4)
<Alt>-7 <Ctrl><Alt>-C Callstack-Fenster
<Alt>-8 - Disassembly-Fenster
<Alt>-0 - Source Code-Fenster (zurück aus dem Disassembly-Fenster)
<Ctrl>-F11 - Wechsel zwischen Disassembly-Fenster und Source Code-Fenster
F9 - Toggle Breakpoint
<Alt>-F9 <Ctrl><Alt>-B Breakpoints-Fenster
<Ctrl>-F9 - Disable / Enable Breakpoint
<Ctrl><Shift>-F9 - Remove all Breakpoints
- <Ctrl>-B Neuer Breakpoint (Unabhängig vom aktuellen Editor / von der Cursorposition)
<Shift>-F9 <Ctrl><Alt>-Q Quick-Watch
- <Ctrl><Alt>-E Exception Fenster
- <Ctrl><Alt>-P Attach to Process-Fenster
- <Ctrl><Alt>-H Threads-Fenster
- <Ctrl><Alt>-U Modules-Fenster
- <Ctrl><Alt>-I Immediate-Fenster (Direkteingabe)
F5 - Startet im Debugger
<Ctrl>-F5 - Startet ausserhalb den Debuggers
<Shift>-F5 - Beendet den Debugger
<Ctrl><Shift>-F5 - Restarted den Debugger
F10 - Step over
<Ctrl>-F10 - Run to Cursor
<Ctrl><Shift>-F10 - Set next Statement to Cursor
F11 - Step into
<Shift>-F11 - Step out
<Alt>-* (numpad) - Zeigt nächste Anweisung
Merkhilfe:
  • <Alt>+Zahl: Die wichtigsten Debug-Fenster. (Nicht belegt sind 1, 3 und 9)
  • <Ctrl><Alt>+Taste: Der Short-Cut beschreibt das Kommando (E für Exception) oder nicht (H für Threads).
  • F9: Irgendwas mit Breakpoints (sowie das Quick Watch-Fenster)