? (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 |
Destinos | En tiempo real, volcado de errores |
Platforms | All |
Comentarios
La entrada y salida del ?
comando dependen de si usa la sintaxis de expresión 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 de MASM, la entrada y la salida dependen del radix actual. Para cambiar el radix, use el comando n (Establecer base de número).
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
, \"
, \r
y \b
, que están diseñados para leerse literalmente, en lugar de interpretarse 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 la tercera parte, el evaluador no puede realizar una comparación porque la cadena termina en una barra diagonal inversa ( \
) y, por tanto \"
, el evaluador traduce .
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 (no distingue mayúsculas de minúsculas) el patrón de la segunda cadena. Para obtener más información sobre los operadores MASM, vea el tema Números y operadores de MASM.
Consulte también
.formats (Mostrar formatos de número)