Operador de contexto (Expresiones del lenguaje C/C++)
Actualización: noviembre 2007
Este tema hace referencia a:
Edición |
Visual Basic |
C# |
C++ |
Web Developer |
---|---|---|---|---|
Express |
Sólo para código nativo |
|||
Estándar |
Sólo para código nativo |
|||
Pro y Team |
Sólo para código nativo |
Leyenda de la tabla:
Se aplica |
|
No procede |
|
Comando o comandos ocultos de manera predeterminada. |
El operador de contexto es un operador adicional que proporciona el depurador nativo. Cuando se depura código nativo, se puede utilizar el operador de contexto para calificar una ubicación de punto de interrupción, un nombre de variable o una expresión:
{[{[función],[origen],[módulo] } location
{[{[función],[origen],[módulo] } variable_name
{[función],[origen],[módulo] } expresión
Las llaves pueden contener cualquier combinación de nombre de función, ruta de acceso al archivo de código fuente y ruta de acceso al módulo (archivo ejecutable o archivo DLL). El operador de contexto es útil, por ejemplo, para especificar un nombre desde un ámbito externo que se encuentra oculto por un nombre local.
Ejemplo
Para establecer un punto de interrupción en la línea 301 de EXAMPLE.CPP:
{,EXAMPLE.CPP,}@301
Si omite función o módulo, no podrá omitir las dos comas. Por lo tanto, la siguiente sintaxis no es válida:
{File.c, File.exe} @143 // Invalid syntax
No obstante, si omite tanto origen como módulo, puede omitir las comas. La siguiente sintaxis es válida:
{Fun} @143
Si la ruta de acceso de origen o módulo incluye una coma, un espacio incrustado o una llave, debe incluir el nombre de la ruta de acceso entre comillas a fin de 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 deben utilizarse comillas dobles. Por ejemplo,
{,"a long, long, name.c", } .143
Cuando el evaluador de expresiones encuentra un símbolo en una expresión, busca el símbolo en el siguiente orden:
Salida del ámbito léxico, comienza con el bloque actual, series de instrucciones entre llaves, y continúa con la salida del bloque de inclusión. El bloque actual es el código que contiene la ubicación actual, dirección del puntero de instrucciones.
Ámbito de función. La función actual.
Á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 utiliza las reglas de dominación normales.
Módulo actual.
Símbolos globales.
Otros módulos.
Símbolos públicos en el programa.
Con el operador de contexto se especifica el punto inicial de la búsqueda y se omite la posición actual. No se puede especificar una clase, pero sí una función miembro de la clase y dejar que el evaluador de expresiones busque hacia afuera.