Operatore di contesto (espressioni in linguaggio C/C++)

Aggiornamento: novembre 2007

Le informazioni contenute in questo argomento sono valide per:

Edition

Visual Basic

C#

C++

Web Developer

Express

Argomento non applicabile Argomento non applicabile

Solo nativo

Argomento non applicabile

Standard

Argomento non applicabile Argomento non applicabile

Solo nativo

Argomento non applicabile

Pro e Team

Argomento non applicabile Argomento non applicabile

Solo nativo

Argomento non applicabile

Legenda tabella:

Argomento applicabile

Applicabile

Argomento non applicabile

Non applicabile

Argomento valido ma comando nascosto per impostazione predefinita

Comando o comandi nascosti per impostazione predefinita.

L'operatore di contesto è un operatore aggiuntivo fornito dal debugger nativo. Durante il debug di un codice nativo, è possibile utilizzare l'operatore di contesto per qualificare la posizione di un punto di interruzione, un nome di variabile o un'espressione:

  • {[{[funzione],[origine],[modulo] } location

  • {[{[funzione],[origine],[modulo] } variable_name

  • {[funzione],[origine],[modulo] } espressione

Le parentesi graffe possono racchiudere qualsiasi combinazione di nome di funzione, percorso di file di origine e percorso di modulo (eseguibile o DLL). L'operatore di contesto è utile per specificare ad esempio un nome di un ambito esterno che verrebbe altrimenti nascosto da un nome locale.

Esempio

Per impostare un punto di interruzione alla riga 301 di EXAMPLE.CPP:

{,EXAMPLE.CPP,}@301

Se si omette funzione o modulo, non sarà possibile omettere le due virgole. Di conseguenza, la seguente sintassi non è valida:

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

Se si omette sia origine che modulo, sarà invece possibile omettere le virgole. La seguente sintassi è valida:

{Fun} @143

Se il percorso di origine o modulo include una virgola, uno spazio incorporato o una parentesi graffa, dovrà essere racchiuso tra virgolette in modo da consentire al parser del contesto di riconoscere la stringa correttamente. Poiché le virgolette singole vengono considerate parte di un nome di file di Windows, è necessario utilizzare le virgolette doppie. Ad esempio,

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

Quando l'analizzatore di espressioni rileva un simbolo in un'espressione, ne esegue la ricerca nel seguente ordine:

  1. Ambito lessicale verso l'esterno, a partire dal blocco corrente, una serie di istruzioni racchiuse tra parentesi graffe, verso il blocco di inclusione. Il blocco corrente è il codice contenente la posizione corrente, ovvero l'indirizzo del puntatore all'istruzione (instruction pointer).

  2. Ambito della funzione corrente.

  3. Ambito della classe, se la posizione corrente è all'interno di una funzione membro C++. Nell'ambito della classe sono incluse tutte le classi base. L'analizzatore di espressioni utilizza le normali regole di dominanza.

  4. Modulo corrente.

  5. Simboli globali.

  6. Altri moduli.

  7. Simboli pubblici del programma.

L'operatore di contesto consente di specificare il punto iniziale della ricerca e ignorare la posizione corrente. Non è possibile specificare una classe, ma è possibile specificare una funzione membro della classe e fare in modo che l'analizzatore di espressioni effettui la ricerca verso l'esterno.

Vedere anche

Altre risorse

Espressioni in C++ nativo