Compartir a través de


Operador de contexto en el depurador de Visual Studio (C++)

Puede usar el operador de contexto en C++ para calificar una ubicación de punto de interrupción, un nombre de variable o una expresión. El operador de contexto es útil para especificar un nombre de un ámbito externo que, de lo contrario, está oculto por un nombre local.

Syntax

Hay dos maneras de especificar el contexto:

  1. {,,[module] } expresión

    Las llaves deben contener dos comas y el nombre del módulo (ejecutable o DLL) o ruta de acceso completa.

    Por ejemplo, para establecer un punto de interrupción en la SomeFunction función de EXAMPLE.dll:

    {,,EXAMPLE.dll}SomeFunction
    
  2. módulo! expresión

    EXAMPLE.dll!SomeFunction
    
  • module es el nombre de un módulo. Puede usar una ruta de acceso completa para desambiguar entre módulos con el mismo nombre.

    Si la ruta de módulo incluye una coma, un espacio incrustado o una llave, debe usar comillas alrededor de la ruta para que el analizador de contexto pueda reconocer correctamente la cadena. Las comillas simples se consideran parte de un nombre de archivo de Windows, por lo que debe usar comillas dobles. Por ejemplo

    {,,"a long, long, library name.dll"} g_Var
    
  • expression es cualquier expresión de C++ válida que se resuelve en un destino válido, como un nombre de función, un nombre de variable o una dirección de puntero en el módulo.

    Cuando el evaluador de expresiones encuentra un símbolo en una expresión, busca el símbolo en el orden siguiente:

  1. Ámbito léxico hacia afuera, empezando por el bloque actual, serie de instrucciones entre llaves y continuando hacia afuera con el bloque envolvente. El bloque actual es el código que contiene la ubicación actual, la dirección del puntero de instrucción.

  2. Ámbito de función. Función actual.

  3. Ámbito de clase, si la ubicación actual está dentro de una función miembro de C++. El ámbito de clase incluye todas las clases base. El evaluador de expresiones usa las reglas de dominación normales.

  4. Símbolos globales en el módulo actual.

  5. Símbolos públicos en el programa actual.