? (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
, \"
, \r
y \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
.formats (Mostrar formatos de número)
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de