Pseudovariablen
Pseudovariablen sind Begriffe, mit denen bestimmte Informationen in einem Variablenfenster oder im Dialogfeld Schnellüberwachung angezeigt werden. Eine Pseudovariable können Sie genauso wie eine normale Variable eingeben. Pseudovariablen sind jedoch keine Variablen und es gibt keine entsprechenden Variablennamen im Programm.
Beispiel
Angenommen, Sie schreiben eine Anwendung in systemeigenem Code, und Sie möchten die Anzahl zugeordneter Handles der Anwendung anzeigen. Im Fenster Überwachen können Sie in der Spalte Name die folgende Pseudovariable eingeben und zur Auswertung anschließend die EINGABETASTE drücken:
$handles
Bei systemeigenem Code können Sie die in dieser Tabelle aufgeführten Pseudovariablen verwenden:
Pseudovariable |
Funktion |
---|---|
$err |
Es wird der letzten Fehlerwert angezeigt, der mit der Funktion "SetLastError" festgelegt wird. Der angezeigte Wert stellt das Ergebnis der Rückgabe der Funktion "GetLastError" dar. Verwenden Sie $err,hr, um die dekodierte Form dieses Werts anzuzeigen. Wenn der letzte Fehler z. B. 3 wäre, würde $err,hr ERROR_PATH_NOT_FOUND : The system cannot find the path specified. anzeigen. |
$handles |
Zeigt die Anzahl von Handles an, die der Anwendung zugeordnet sind. |
$vframe |
Zeigt die Adresse des aktuellen Stapelrahmens an. |
$tid |
Zeigt die Thread-ID für den aktuellen Thread an. |
$env |
Zeigt den Umgebungsblock im Zeichenfolgen-Viewer an. |
$cmdline |
Zeigt die Befehlszeilenzeichenfolge an, mit der das Programm gestartet wurde. |
$pid |
Zeigt die Prozess-ID an. |
$Registername oder @Registername |
Zeigt den Inhalt des Registers Registername an. Normalerweise geben Sie zum Anzeigen des Registerinhalts einfach den Registernamen ein. Nur beim Überladen eines Variablennamens durch einen Registernamen müssen Sie diese Syntax verwenden. Wenn der Registername im aktuellen Gültigkeitsbereich dem Variablennamen entspricht, interpretiert der Debugger den Namen als Variablenname. In diesem Fall sind $Registername bzw. @Registername praktisch. |
$clk |
Zeigt die Zeit in Taktzyklen an. |
$user |
Zeigt eine Struktur mit Kontoinformationen für das die Anwendung ausführende Konto an. Aus Sicherheitsgründen werden die Kennwortinformationen nicht angezeigt. |
$exceptionstack |
Zeigt die Stapelüberwachung der aktuellen Windows-Runtime-Ausnahme an. $ exceptionstack funktioniert nur in Store-Apps, die unter Windows 8.1 oder höher ausgeführt werden. $ exceptionstack wird nicht für C++- und SEH-Ausnahmen unterstützt. |
$ReturnValue |
Zeigt den Rückgabewert einer .NET Framework-Methode an. Siehe Überprüfen von Rückgabewerten der Methodenaufrufe. |
Die in dieser Tabelle angezeigten Pseudovariablen können Sie in C# und Visual Basic verwenden:
Pseudovariable |
Funktion |
---|---|
$exception |
Zeigt Informationen über die letzte Ausnahme an. Wenn keine Ausnahme aufgetreten ist, wird beim Auswerten von $exception eine Fehlermeldung angezeigt. In Visual C# wird bei deaktiviertem Ausnahmen-Assistenten dem Fenster Lokal bei Auftreten einer Ausnahme automatisch $exception hinzugefügt. |
$user |
Zeigt eine Struktur mit Kontoinformationen für das die Anwendung ausführende Konto an. Aus Sicherheitsgründen werden die Kennwortinformationen nicht angezeigt. |
Die in dieser Tabelle angezeigten Pseudovariablen können Sie in Visual Basic verwenden:
Pseudovariable |
Funktion |
---|---|
$delete oder $$delete |
Löscht eine implizite Variable, die im Fenster Direkt erstellt wurde. Die Syntax lautet $delete, Variable oder $delete, Variable. |
$objectids oder $listobjectids |
Zeigt alle aktiven Objekt-IDs als untergeordnete Elemente des angegebenen Ausdrucks an. Die Syntax lautet $objectid, Ausdruck oder $listobjectids, Ausdruck. |
$N# |
Zeigt das Objekt mit der Objekt-ID N an. |
$dynamic |
Zeigt den besonderen Knoten Dynamische Ansicht für ein Objekt an, das IDynamicMetaObjectProvider implementiert. Schnittstelle Die Syntax lautet $dynamic, Objekt. Diese Funktion gilt nur für Code, der .NET Framework Version 4 verwendet. Siehe Dynamische Ansicht. |
Siehe auch
Aufgaben
Gewusst wie: Überwachen eines Ausdrucks im Debugger