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à
Dal menu Strumenti, scegliere Opzioni.
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.