Procedura: aggiornare i valori delle espressioni di controllo
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
Effettuare uno dei passaggi riportati di seguito.
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à
Scegliere Opzioni dal menu Strumenti.
Nella finestra di dialogo Opzioni aprire il nodo Debug e scegliere Generale.
Se il nodo Debug non viene visualizzato, scegliere Mostra tutte le impostazioni.
Selezionare o deselezionare la casella di controllo Attiva valutazione delle proprietà e altre chiamate di funzioni implicite, quindi scegliere OK.