? (Ausdruck auswerten)
Der Fragezeichenbefehl (?
) wertet den Wert eines Ausdrucks aus und zeigt den Wert an.
Ein Fragezeichen selbst (?) zeigt die Befehlshilfe an. Der ?
Ausdrucksbefehl wertet den angegebenen Ausdruck aus.
? Expression
Parameter
Expression
Gibt den zu bewertenden Ausdruck an.
Environment
Element | Beschreibung |
---|---|
Modi | Benutzermodus, Kernel-Modus |
Ziele | Live, Crash Dump |
Plattformen | Alle |
Hinweise
Die Eingabe und Ausgabe des ?
Befehls hängen davon ab, ob Sie MASM-Ausdruckssyntax oder C++-Ausdruckssyntax verwenden. Weitere Informationen zu diesen Arten von Ausdruckssyntax finden Sie unter Auswerten von Ausdrücken und numerischer Ausdruckssyntax.
Wenn Sie MASM-Syntax verwenden, hängt die Eingabe und Ausgabe vom aktuellen Radix ab. Verwenden Sie zum Ändern des Radix den Befehl "n" (Set Number Base).
Der ?
Befehl wertet Symbole im Ausdruck im Kontext des aktuellen Threads und Prozesses aus.
Einige Zeichenfolgen können Escapezeichen enthalten, z \n
. B. , \"
, \r
und \b
, die wörtlich gelesen werden sollen, anstatt vom Evaluator interpretiert zu werden. Wenn ein Escapezeichen innerhalb einer Zeichenfolge vom Evaluator interpretiert wird, können Fehler in der Auswertung auftreten. Zum Beispiel:
0:000> as AliasName c:\dir\name.txt
0:000> al
Alias Value
------- -------
AliasName c:\dir\name.txt
0:001> ? $spat( "c:\dir\name.txt", "*name*" )
Evaluate expression: 0 = 00000000
0:001> ? $spat( "${AliasName}", "*name*" )
Evaluate expression: 0 = 00000000
0:001> ? $spat( "c:\dir\", "*filename*" )
Syntax error at '( "c:\dir\", "*filename*" )
In den ersten beiden Beispielen gibt der Evaluator zwar mit dem Muster übereinstimmt, einen Wert von FALSE zurück. Im dritten Kann der Evaluator keinen Vergleich vornehmen, da die Zeichenfolge in einem umgekehrten Schrägstrich ( \
) endet und daher \"
vom Evaluator übersetzt wird.
Um den Evaluator zum buchstäblichen Interpretieren einer Zeichenfolge zu erhalten, müssen Sie die @"String"
Syntax verwenden. Das folgende Codebeispiel zeigt die richtigen Ergebnisse:
0:000> ? $spat( @"c:\dir\name.txt", "*name*" )
Evaluate expression: 1 = 00000000`00000001
0:000> ? $spat( @"${AliasName}", "*name*" )
Evaluate expression: 1 = 00000000`00000001
0:001> ? $spat( @"c:\dir\", "*filename*" )
Evaluate expression: 0 = 00000000
In den vorangehenden Beispielen überprüft der $spat
MASM-Operator die erste Zeichenfolge, um festzustellen, ob das Muster der zweiten Zeichenfolge mit der Groß-/Kleinschreibung übereinstimmt (Groß-/Kleinschreibung). Weitere Informationen zu MASM-Operatoren finden Sie im Thema "MASM Numbers and Operators ".
Weitere Informationen
?? (Auswerten des C++-Ausdrucks)
.formats (Zahlenformate anzeigen)