Compartilhar via


? (Avaliar expressão)

O comando de ponto de interrogação (?) avalia e exibe o valor de uma expressão.

Um ponto de interrogação por si só (?) exibe a ajuda do comando. O ? comando de expressão avalia a expressão fornecida.

? Expression

Parâmetros

Expression

Especifica a expressão a ser avaliada.

Ambiente

Item Descrição
Modos Modo de usuário, modo kernel
Destinos Ao vivo, despejo de memória
Plataformas Tudo

Comentários

A entrada e a saída do ? comando dependem se você está usando sintaxe de expressão MASM ou sintaxe de expressão C++. Para obter mais informações sobre esses tipos de sintaxe de expressão, consulte Avaliando expressões e sintaxe de expressão numérica.

Se você estiver usando a sintaxe MASM, a entrada e a saída dependerão do radix atual. Para alterar o radix, use o comando n (Definir Base numérica).

O ? comando avalia símbolos na expressão no contexto do thread e do processo atuais.

Algumas cadeias de caracteres podem conter escapes, como \n, \"\r, e \b, que devem ser lidos literalmente, em vez de interpretados pelo avaliador. Se um escape dentro de uma cadeia de caracteres for interpretado pelo avaliador, poderão ocorrer erros na avaliação. Por exemplo:

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

Nos dois primeiros exemplos, embora a cadeia de caracteres corresponda ao padrão, o avaliador está retornando um valor false. No terceiro, o avaliador não pode fazer uma comparação porque a cadeia de caracteres termina em uma barra invertida ( \ ) e, portanto, é \" convertida pelo avaliador.

Para que o avaliador interprete uma cadeia de caracteres literalmente, você deve usar a @"String" sintaxe . O exemplo de código a seguir mostra os resultados corretos:

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

Nos exemplos anteriores, o $spat operador MASM verifica a primeira cadeia de caracteres para determinar se ela corresponde (não diferencia maiúsculas de minúsculas) ao padrão da segunda cadeia de caracteres. Para obter mais informações sobre operadores MASM, consulte o tópico Números e Operadores MASM .

Confira também

?? (Avaliar expressão C++)

.formats (Mostrar formatos de número)

Operadores e números MASM

Números e operadores C++

Expressões MASM versus expressões C++

Exemplos de expressões mistas