Condividi tramite


Procedura: aggiornare i valori delle espressioni di controllo

Le informazioni contenute in questo argomento sono valide per:

Edizione

Visual Basic

C#

F#

C++

Web Developer

Express

Argomento applicabile Argomento applicabile Argomento applicabile Argomento applicabile Argomento applicabile

Pro, Premium e Ultimate

Argomento applicabile

Argomento applicabile

Argomento applicabile

Argomento applicabile

Argomento applicabile

Quando si valuta un'espressione nel debugger, nella colonna Valore possono essere visualizzate due icone di aggiornamento. Un'icona di aggiornamento è un cerchio contenente due frecce che girano in direzioni opposte. L'altra icona è un cerchio contenente due linee ondulate che assomigliano a thread.

Queste icone indicano che il valore visualizzato nel debugger non è corrente. È possibile che il valore sia corretto, ma non è aggiornato. Per evidenziare ulteriormente il fatto, il valore appare di colore grigio. È possibile forzare la valutazione facendo clic sull'icona, ma è necessario comprendere le ragioni dell'icona e le possibili conseguenze.

Se si punta all'icona, una descrizione comando fornisce informazioni sul motivo per cui l'espressione non è stata valutata.

Se vengono visualizzate le frecce che girano in cerchio, l'espressione non è stata valutata per uno dei seguenti motivi:

  • Si è verificato un errore durante la valutazione dell'espressione. Ad esempio, è possibile che si sia verificato un timeout o che una variabile fosse esterna all'ambito.

  • La valutazione dell'espressione avrebbe richiesto la valutazione di una proprietà o la creazione di una chiamata di funzione implicita. La valutazione di proprietà e le chiamate di funzione implicite possono avere effetti collaterali che influiscono sullo stato del programma. Poiché questi effetti possono complicare ulteriormente il debug, la valutazione automatica delle proprietà e le chiamate di funzioni implicite da parte del debugger sono spesso disattivate. In alcuni casi, è possibile che un programmatore disattivi inavvertitamente la valutazione automatica. Per ulteriori informazioni sugli effetti collaterali, vedere Espressioni ed effetti secondari.

Se vengono visualizzati i due thread, l'espressione non è stata valutata a causa di una potenziale dipendenza cross-thread. Questo tipo di dipendenza significa che la valutazione del codice richiede l'esecuzione temporanea di altri thread nell'applicazione. Quando ci si trova in modalità di interruzione, in genere tutti i thread nell'applicazione vengono arrestati. L'esecuzione temporanea di altri thread può avere effetti imprevisti sullo stato del programma e può far sì che il debugger ignori alcuni eventi quali i punti di interruzione.

Per aggiornare un valore non aggiornato

  • Eseguire una delle operazioni seguenti:

    • Fare clic sull'icona di aggiornamento.

    • Selezionare il valore, quindi premere la BARRA SPAZIATRICE.

    Il debugger tenta di rivalutare l'espressione. Se l'icona di aggiornamento è stata visualizzata perché la valutazione automatica di proprietà e gli effetti collaterali impliciti erano disattivati, l'espressione verrà ora valutata.

Per attivare o disattivare la valutazione automatica delle proprietà

  1. Scegliere Opzioni dal menu Strumenti.

  2. Nella finestra di dialogo Opzioni aprire il nodo Debug e scegliere Generale.

    Se il nodo Debug non viene visualizzato, scegliere Mostra tutte le impostazioni.

  3. Selezionare o deselezionare la casella di controllo Attiva valutazione delle proprietà e altre chiamate di funzioni implicite, quindi scegliere OK.

Vedere anche

Concetti

Espressioni ed effetti secondari