? (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
Formati (mostra formati numerici)