Operador de contexto no Depurador do Visual Studio (C++)
Você pode usar o operador de contexto em C++ para qualificar um local de ponto de interrupção, um nome de variável ou uma expressão. O operador de contexto é útil para especificar um nome de um escopo externo que, de outra forma, estaria oculto por um nome local.
Sintaxe
Há duas maneiras de especificar o contexto:
{,,[module] } expression
As chaves devem conter duas vírgulas e o nome do módulo (executável ou DLL) ou o caminho completo.
Por exemplo, para definir um ponto de interrupção na função
SomeFunction
deEXAMPLE.dll
:{,,EXAMPLE.dll}SomeFunction
module!expression
EXAMPLE.dll!SomeFunction
module é o nome de um módulo. Você pode usar um caminho completo para resolver a ambiguidade entre módulos com o mesmo nome.
Se o caminho do módulo inclui uma vírgula, um espaço inserido ou uma chave, você deverá usar aspas em torno do caminho de modo que o analisador de contexto possa reconhecer corretamente a cadeia de caracteres. As aspas simples são consideradas parte de um nome de arquivo do Windows, portanto, você deve usar aspas duplas. Por exemplo,
{,,"a long, long, library name.dll"} g_Var
expression é qualquer expressão C++ válida que resolve para um destino válido, como um nome de função, nome da variável ou endereço de ponteiro no module.
Quando o avaliador de expressão localiza um símbolo em uma expressão, procura pelo símbolo na seguinte ordem:
Escopo léxico externo, começando com o bloco atual, série de instruções incluídas entre chaves e a continuação externa com o bloco delimitador. O bloco atual é o código que contém o local atual, endereço do ponteiro de instrução.
Escopo da função. A função atual.
Escopo da classe, se o local atual estiver dentro de uma função de membro C ++. O escopo da classe inclui todas as classes base. O avaliador de expressão usa regras de dominância normais.
Símbolos globais no módulo atual.
Símbolos públicos no programa atual.