? (Ausdruck auswerten)

Der Befehl Fragezeichen (?) wertet den Wert eines Ausdrucks aus und zeigt diesen an.

Ein Fragezeichen allein (?) zeigt Befehlshilfe an. Der ?Ausdrucksbefehl wertet den angegebenen Ausdruck aus.

? Expression

Parameter

Ausdruck

Gibt den auszuwertenden Ausdruck an.

Environment

Element BESCHREIBUNG
Modi Benutzermodus, Kernelmodus
Targets Liveabbild, Absturzabbild
Plattformen Alle

Hinweise

Die Eingabe und Ausgabe des ? Befehls hängen davon ab, ob Sie die MASM-Ausdruckssyntax oder die C++-Ausdruckssyntax verwenden. Weitere Informationen zu diesen Arten von Ausdruckssyntax finden Sie unter Auswerten von Ausdrücken und numerischer Ausdruckssyntax.

Wenn Sie die MASM-Syntax verwenden, hängen Eingabe und Ausgabe vom aktuellen Radix ab. Um den Radix zu ändern, verwenden Sie den Befehl n (Set Number Base).

Der ? Befehl wertet Symbole im Ausdruck im Kontext des aktuellen Threads und Prozesses aus.

Einige Zeichenfolgen können Escapes enthalten, z \n. B. , \", \rund \b, die wörtlich gelesen werden sollen, anstatt vom Auswerter interpretiert zu werden. Wenn ein Escape in einer Zeichenfolge vom Auswerter interpretiert wird, können Fehler bei der Auswertung auftreten. 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 Auswerter den Wert FALSE zurück, obwohl die Zeichenfolge dem Muster entspricht. In der dritten kann der Evaluator keinen Vergleich durchführen, da die Zeichenfolge in einem umgekehrten Schrägstrich endet ( \ ), und daher vom \" Auswerter übersetzt wird.

Damit der Evaluator eine Zeichenfolge wörtlich interpretieren kann, 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 vorherigen Beispielen überprüft der $spat MASM-Operator die erste Zeichenfolge, um zu bestimmen, ob sie dem Muster der zweiten Zeichenfolge entspricht (ohne Beachtung der Groß-/Kleinschreibung). Weitere Informationen zu MASM-Operatoren finden Sie im Thema MASM-Nummern und -Operatoren .

Weitere Informationen

?? (Evaluieren des C++-Ausdrucks)

.formats (Zahlenformate anzeigen)

MASM-Nummern und -Operatoren

C++-Nummern und -Operatoren

MASM-Ausdrücke im Vergleich zu C++-Ausdrücken

Beispiele für gemischte Ausdrücke