? (Evaluate Expression)

Il comando punto interrogativo (?) valuta e visualizza il valore di un'espressione.

Un punto interrogativo da solo (?) visualizza la Guida dei comandi. Il ? comando expression valuta l'espressione specificata.

? Expression

Parametri

Expression

Specifica l'espressione da valutare.

Ambiente

Articolo Descrizione
Modalità Modalità utente, modalità kernel
Target Live, crash dump
Piattaforme Tutte le date

Osservazioni:

L'input e l'output del comando dipendono dall'uso ? della sintassi delle espressioni MASM o della sintassi delle espressioni C++. Per altre informazioni su questi tipi di sintassi delle espressioni, vedere Valutazione di espressioni e sintassi di espressioni numeriche.

Se si usa la sintassi MASM, l'input e l'output dipendono dal radix corrente. Per modificare il file radix, usare il comando n (Imposta base numeri).

Il ? comando valuta i simboli nell'espressione nel contesto del thread e del processo corrente.

Alcune stringhe possono contenere escape, ad esempio \n, \"\r, e \b, che devono essere lette letteralmente, anziché interpretate dall'analizzatore. Se un escape all'interno di una stringa viene interpretato dall'analizzatore, possono verificarsi errori nella valutazione. Ad esempio:

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*" )

Nei primi due esempi, anche se la stringa corrisponde al modello, l'analizzatore restituisce un valore FALSE. Nel terzo, l'analizzatore non può eseguire un confronto perché la stringa termina con una barra rovesciata ( \ ) e quindi \" viene tradotta dall'analizzatore.

Per ottenere l'analizzatore per interpretare una stringa letteralmente, è necessario usare la @"String" sintassi . L'esempio di codice seguente mostra i risultati corretti:

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

Negli esempi precedenti, l'operatore $spat MASM controlla la prima stringa per determinare se corrisponde (senza distinzione tra maiuscole e minuscole) il modello della seconda stringa. Per altre informazioni sugli operatori MASM, vedere l'argomento MaSM Numbers and Operators .

Vedi anche

?? (Valuta espressione C++)

Formati (mostra formati numerici)

Operatori e numeri MASM

Numeri e operatori C++

Espressioni MASM e espressioni C++

Esempi di espressioni miste