Condividi tramite


? (Espressione di valutazione)

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

Espressione

Specifica l'espressione da valutare.

Ambiente

Elemento Descrizione
Modalità Modalità utente, modalità kernel
Targets Live, crash dump
Piattaforme Tutti

Commenti

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 radix, usare il comando n (Set Number Base).

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 carattere di 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 in una barra rovesciata ( \ ) e quindi l'oggetto \" viene convertito 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

?? (Evaluate C++ Expression)

Formati .formats (Mostra formati numerici)

Operatori e numeri MASM

Numeri e operatori C++

Espressioni MASM e espressioni C++

Esempi di espressioni miste