Operador de contexto (expressões de languagem C/C++)
Este tópico se aplica a:
Edição |
Visual Basic |
C# |
C++ |
Desenvolvedores Web |
---|---|---|---|---|
Express |
Somente nativo |
|||
Padrão |
Somente nativo |
|||
PRO e equipe |
Somente nativo |
Legenda de tabela:
Aplica-se |
|
Não é aplicada |
|
Comando ou comandos oculta por padrão. |
O operador de contexto é um operador adicional fornecido pelo depurador nativo.Quando estiver depurando código nativo, você pode usar o operador de contexto para qualificar um local de ponto de interrupção, nome de variável, ou expressão:
{[função],fonte],módulo} location
{[função],fonte],módulo} variable_name
{[função],fonte],módulo} expressão
As chaves podem conter qualquer combinação de nome de função, caminho do arquivo origem, e caminho de módulo (executável ou DLL).O operador de contexto é útil para fins como especificar um nome de um escopo externo que está oculto por um nome local.
Exemplo
Para definir um ponto de interrupção na linha 301 de EXAMPLE.CPP:
{,EXAMPLE.CPP,}@301
Se você omitir um function ou module, as duas vírgulas não podem ser omitidas.Por esse motivo, a sintaxe a seguir é inválida:
{File.c, File.exe} @143 // Invalid syntax
Se você omitir ambos source e module, entretanto, você pode omitir as vírgulas.A sintaxe a seguir é válida:
{Fun} @143
Se o caminho source ou module inclui uma vírgula, um espaço incorporado, ou uma chave, você deve usar entre aspas o caminho de forma que o analisador de contexto possa reconhecer corretamente a sequência.Aspas simples são considerados parte de um nome de arquivo do Windows, portanto você deve usar aspas duplas.Por exemplo,
{,"a long, long, name.c", } .143
Quando o avaliador da expressão encontrar um símbolo em uma expressão, ele procura o símbolo na seguinte ordem:
Escopo léxico para fora, começando com o bloco atual, série de instruções delimitadas por chaves, e continuando para fora com o bloco de inclusão.O bloco atual é o código que contém o local atual, endereço do ponteiro de instrução.
Escopo de função.A função atual.
Escopo de classe, se o local atual estiver dentro uma função de membro C++.Escopo de classe inclui todas as classes base.O avaliador da expressão usa as regras de dominação normais.
Módulo atual.
Símbolos globais.
Outros módulos.
Símbolos públicos no programa.
Com o operador de contexto, você especifica o ponto inicial da pesquisa e ignora o local atual.Não é possível especificar uma classe, mas você pode especificar um função de membro da classe e permitir que o avaliador da expressão pesquise para fora.