Share via


? (Evaluar expresión)

El comando de signo de interrogación (?) evalúa y muestra el valor de una expresión.

Un signo de interrogación por sí mismo (?) muestra la ayuda del comando. El ? comando expression evalúa la expresión especificada.

? Expression

Parámetros

Expression

Especifica la expresión que se va a evaluar.

Entorno

Elemento Descripción
Modos Modo de usuario, modo kernel
Targets Volcado de memoria activo y de memoria
Plataformas Todo

Comentarios

La entrada y la salida del ? comando dependen de si se usa la sintaxis de expresión de MASM o la sintaxis de expresión de C++. Para obtener más información sobre estos tipos de sintaxis de expresión, vea Evaluación de expresiones y sintaxis de expresiones numéricas.

Si usa la sintaxis MASM, la entrada y la salida dependen del radix actual. Para cambiar el radix, use el comando n (Set Number Base).

El ? comando evalúa los símbolos de la expresión en el contexto del subproceso y el proceso actuales.

Algunas cadenas pueden contener escapes, como \n, \", \ry \b, que están diseñados para ser leídos literalmente, en lugar de interpretados por el evaluador. Si el evaluador interpreta un escape dentro de una cadena, pueden producirse errores en la evaluación. Por ejemplo:

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

En los dos primeros ejemplos, aunque la cadena coincide con el patrón, el evaluador devuelve un valor false. En el tercero, el evaluador no puede realizar una comparación porque la cadena termina en una barra diagonal inversa ( \ ), por lo que el evaluador traduce el \" objeto .

Para que el evaluador interprete una cadena literalmente, debe usar la @"String" sintaxis . En el ejemplo de código siguiente se muestran los resultados correctos:

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

En los ejemplos anteriores, el $spat operador MASM comprueba la primera cadena para determinar si coincide (sin distinción entre mayúsculas y minúsculas) con el patrón de la segunda cadena. Para obtener más información sobre los operadores de MASM, vea el tema Números y operadores de MASM .

Consulte también

?? (Evaluar expresión de C++)

.formats (Mostrar formatos de número)

Números y operadores de MASM

Números y operadores de C++

Expresiones masm frente a expresiones de C++

Ejemplos de expresiones mixtas