Partager via


Opérateur de contexte (Expressions du langage C/C++)

Mise à jour : novembre 2007

Cette rubrique s'applique à :

Édition

Visual Basic

C#

C++

Web Developer

Express

La rubrique ne s'applique pas La rubrique ne s'applique pas

Natif uniquement

La rubrique ne s'applique pas

Standard

La rubrique ne s'applique pas La rubrique ne s'applique pas

Natif uniquement

La rubrique ne s'applique pas

Pro et Team

La rubrique ne s'applique pas La rubrique ne s'applique pas

Natif uniquement

La rubrique ne s'applique pas

Légende du tableau :

La rubrique s'applique

Applicable

La rubrique ne s'applique pas

Non applicable

La rubrique s'applique mais la commande est masquée par défaut

Commande ou commandes masquées par défaut.

L'opérateur de contexte est un opérateur supplémentaire fourni par le débogueur natif. Lorsque vous déboguez du code natif, vous pouvez utiliser l'opérateur de contexte pour qualifier l'emplacement d'un point d'arrêt, un nom de variable ou une expression :

  • {[{[fonction],[source],[module]} location

  • {[{[fonction],[source],[module]} variable_name

  • {[fonction],[source],[module] } expression

Les accolades peuvent contenir une combinaison du nom de fonction, du chemin d'accès du fichier source et du chemin d'accès du module (exécutable ou DLL). L'opérateur de contexte est utile pour des opérations telles que la spécification d'un nom issu d'une portée externe qui serait sinon masqué par un nom local.

Exemple

Pour définir un point d'arrêt à la ligne 301 de EXAMPLE.CPP :

{,EXAMPLE.CPP,}@301

Si vous omettez la fonction ou le module, les deux virgules ne peuvent pas être omises. Il en résulte que la syntaxe suivante n'est pas valide :

{File.c, File.exe} @143 // Invalid syntax

Toutefois, si vous omettez la source et le module, vous pouvez omettre les virgules. La syntaxe suivante est valide :

{Fun} @143

Si le chemin de la source ou du module comprend une virgule, un espace incorporé ou une accolade, vous devez utiliser des guillemets au début et à la fin du chemin afin que l'analyseur de contexte reconnaisse la chaîne. Les guillemets simples sont considérés comme faisant partie d'un nom de fichier Windows, c'est pourquoi vous devez utiliser des guillemets doubles. Par exemple :

{,"a long, long, name.c", } .143

Lorsque l'évaluateur d'expression rencontre un symbole dans une expression, il recherche le symbole en procédant dans l'ordre suivant :

  1. Portée lexicale, vers l'extérieur, du bloc actuel (série d'instructions entre accolades) au bloc englobant. Le bloc actuel est le code contenant l'emplacement actuel (adresse du pointeur d'instruction).

  2. Portée de la fonction. La fonction actuelle.

  3. Portée de la classe, si l'emplacement actuel se trouve à l'intérieur d'une fonction membre C++. La portée de la classe comprend toutes les classes de base. L'évaluateur d'expression utilise les règles de dominance classiques.

  4. Le module actuel.

  5. Les symboles globaux.

  6. Les autres modules.

  7. Les symboles publics dans le programme.

Avec l'opérateur de contexte, vous spécifiez le point de départ de la recherche et ignorez l'emplacement actuel. Vous ne pouvez pas spécifier de classe, mais vous pouvez spécifier une fonction membre de la classe et laisser l'évaluateur d'expression effectuer des recherches dans les blocs englobants.

Voir aussi

Autres ressources

Expressions en C++ natif