? (Évaluer l'expression)
La commande point d’interrogation?
() évalue et affiche la valeur d’une expression.
Un point d’interrogation lui-même ( ?) affiche l’aide de commande. La ?
commande expression évalue l’expression donnée.
? Expression
Paramètres
Expression
Indique l’expression à évaluer.
Environnement
Élément | Description |
---|---|
Modes | Mode utilisateur, mode noyau |
Targets | Live, vidage de la mémoire |
Platforms | Tous |
Notes
L’entrée et la sortie de la commande dépendent de l’utilisation de la ?
syntaxe d’expression MASM ou de la syntaxe d’expression C++. Pour plus d’informations sur ces types de syntaxe d’expression, consultez Évaluation des expressions et syntaxe d’expression numérique.
Si vous utilisez la syntaxe MASM, l’entrée et la sortie dépendent du rayon actuel. Pour modifier le radix, utilisez la commande n (Définir la base de nombres).
La ?
commande évalue les symboles dans l’expression dans le contexte du thread et du processus actuel.
Certaines chaînes peuvent contenir des échappements, tels que \n
, \"
, \r
et , qui \b
sont destinés à être lus littéralement, plutôt que interprétés par l’évaluateur. Si une séquence d’échappement dans une chaîne est interprétée par l’évaluateur, les erreurs d’évaluation peuvent se produire. Par exemple :
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*" )
Dans les deux premiers exemples, même si la chaîne correspond au modèle, l’évaluateur retourne une valeur false. Dans le troisième, l’évaluateur ne peut pas effectuer de comparaison, car la chaîne se termine par une barre oblique inverse ( \
), et ainsi la \"
traduction est traduite par l’évaluateur.
Pour que l’évaluateur interprète littéralement une chaîne, vous devez utiliser la @"String"
syntaxe. L’exemple de code suivant montre les résultats corrects :
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
Dans les exemples précédents, l’opérateur $spat
MASM vérifie la première chaîne pour déterminer s’il correspond (sans respect de la casse) au modèle de la deuxième chaîne. Pour plus d’informations sur les opérateurs MASM, consultez la rubrique Numéros et opérateurs MASM.
Voir aussi
.formats (Afficher les formats numériques)