Esaminare le variabili nelle finestre Auto e Variabili locali
Le finestre Auto e Variabili locali mostrano i valori delle variabili durante il debug. Le finestre sono disponibili solo durante una sessione di debug. La finestra Auto mostra le variabili usate intorno all'istruzione corrente in cui il debugger viene sospeso. La finestra Variabili locali mostra le variabili definite nell'ambito locale, che è in genere la funzione o il metodo corrente.
Nota
Se questa è la prima volta che si è tentato di eseguire il debug del codice, è possibile leggere Debug per principianti e tecniche e strumenti di debug assoluti prima di eseguire questo articolo.
La finestra Auto è disponibile per il codice C#, Visual Basic, C++e Python, ma non per JavaScript o F#.
Per aprire la finestra Auto, durante il debug, selezionare Debug>di Windows>Auto oppure premere CTRL+ALT+V>A.
Per aprire la finestra Variabili locali durante il debug, selezionare Debug>variabili locali di Windows>o premere ALT+4.
Usare le finestre Auto e Variabili locali
Matrici e oggetti vengono visualizzati nelle finestre Auto e Variabili locali come controlli albero. Selezionare la freccia a sinistra di un nome di variabile per espandere la visualizzazione per visualizzare campi e proprietà. Di seguito è riportato un esempio di oggetto System.IO.FileStream nella finestra Variabili locali :
Un valore rosso nella finestra Variabili locali o Auto indica che il valore è stato modificato dopo l'ultima valutazione. La modifica potrebbe derivare da una sessione di debug precedente o perché il valore è stato modificato nella finestra.
Il formato numerico predefinito nelle finestre del debugger è decimale. Per modificarlo in esadecimale, fare clic con il pulsante destro del mouse nella finestra Variabili locali o Auto e selezionare Visualizzazione esadecimale. Questa modifica influisce su tutte le finestre del debugger.
Modificare i valori delle variabili nella finestra Auto o Variabili locali
Per modificare i valori della maggior parte delle variabili nelle finestre Auto o Variabili locali , fare doppio clic sul valore e immettere il nuovo valore.
Si può immettere un'espressione al posto di un valore, ad esempio a + b
. Il debugger accetta la maggior parte delle espressioni di linguaggio valide.
Nel codice C++ nativo potrebbe essere necessario qualificare il contesto di un nome di variabile. Per altre informazioni, vedere Context Operator (C++).
Attenzione
Assicurarsi di comprendere le conseguenze prima di modificare i valori e le espressioni. Alcuni possibili problemi sono:
La valutazione di alcune espressioni può comportare la modifica del valore di una variabile o altri effetti sullo stato del programma. Ad esempio, la valutazione
var1 = ++var2
modifica il valore di evar1
var2
. Queste espressioni sono dette effetti collaterali. Gli effetti collaterali possono causare risultati imprevisti se non si è a conoscenza di essi.La modifica di valori a virgola mobile può causare lievi inesattezze dovute alla conversione dei componenti frazionari da decimali a binari. Anche una modifica apparentemente innocua può comportare modifiche ad alcuni dei bit nella variabile a virgola mobile.
Cercare nella finestra Auto o Variabili locali
È possibile cercare parole chiave nelle colonne Nome, Valore e Tipo della finestra Auto o Variabili locali usando la barra di ricerca sopra ogni finestra. Premere INVIO o selezionare una delle frecce per eseguire una ricerca. Per annullare una ricerca in corso, selezionare l'icona "x" nella barra di ricerca.
Usare rispettivamente le frecce sinistra e destra (MAIUSC+F3 e F3) per spostarsi tra le corrispondenze trovate.
Per rendere la ricerca più o meno completa, usare l'elenco a discesa Cerca più approfondito nella parte superiore della finestra Auto o Variabili locali per selezionare il numero di livelli profondi da cercare in oggetti annidati.
Aggiungere le proprietà nella finestra Auto o Variabili locali
Nota
Questa funzionalità è supportata per .NET Core 3.0 o versione successiva.
È possibile esaminare rapidamente gli oggetti in base alle relative proprietà nelle finestre Auto e Variabili locali con lo strumento Proprietà associabili. Per usare questo strumento, passare il puntatore del mouse su una proprietà e selezionare l'icona a forma di puntina visualizzata o fare clic con il pulsante destro del mouse e selezionare l'opzione Aggiungi membro come preferito nel menu di scelta rapida risultante. Questa proprietà viene visualizzata all'inizio dell'elenco delle proprietà dell'oggetto e il nome e il valore della proprietà vengono visualizzati nella colonna Valore . Per rimuovere una proprietà, selezionare di nuovo l'icona a forma di puntina o selezionare l'opzione Rimuovi membro come preferito nel menu di scelta rapida .
È anche possibile attivare o disattivare i nomi delle proprietà e filtrare le proprietà non aggiunte quando si visualizza l'elenco delle proprietà dell'oggetto nelle finestre Auto o Variabili locali. È possibile accedere a ogni opzione selezionando i pulsanti nella barra degli strumenti sopra le finestre Auto o Variabili locali.
Modificare il contesto per la finestra Auto o Variabili locali
È possibile usare la barra degli strumenti Percorso di debug per selezionare una funzione, un thread o un processo desiderato, che modifica il contesto per le finestre Auto e Variabili locali.
Per abilitare la barra degli strumenti Percorso debug, fare clic in una parte vuota dell'area della barra degli strumenti e selezionare Posizione debug dall'elenco a discesa oppure selezionare Visualizza>barre degli strumenti>Posizione debug.
Impostare un punto di interruzione e avviare il debug Quando viene raggiunto il punto di interruzione, l'esecuzione viene sospesa ed è possibile visualizzare il percorso nella barra degli strumenti Percorso di debug.
Ottenere assistenza per l'intelligenza artificiale
Se si ha Copilot, è possibile ottenere assistenza per l'intelligenza artificiale durante l'analisi delle variabili nelle finestre Auto o Variabili locali o nei suggerimenti per i dati. Fare clic con il pulsante destro del mouse su una variabile e usare il pulsante Ask Copilot. In questo scenario Copilot conosce già il contesto per la domanda, quindi non è necessario fornire il contesto in chat. Per altre informazioni, vedere Debug con Copilot.
Variabili nella finestra Auto (C#, C++, Visual Basic, Python)
Diversi linguaggi di codice visualizzano variabili diverse nella finestra Auto .
In C# e Visual Basic la finestra Auto visualizza tutte le variabili usate nella riga corrente o precedente. Ad esempio, nel codice C# o Visual Basic dichiarare le quattro variabili seguenti:
public static void Main() { int a, b, c, d; a = 1; b = 2; c = 3; d = 4; }
Impostare un punto di interruzione sulla riga
c = 3;
e avviare il debugger. Quando l'esecuzione viene sospesa, verrà visualizzata la finestra Auto :Il valore di
c
è 0, perché la rigac = 3
non è ancora stata eseguita.In C++, nella finestra Auto vengono visualizzate le variabili usate in almeno tre righe prima della riga corrente in cui viene sospesa l'esecuzione. Ad esempio, nel codice C++ dichiarare sei variabili:
void main() { int a, b, c, d, e, f; a = 1; b = 2; c = 3; d = 4; e = 5; f = 6; }
Impostare un punto di interruzione sulla riga
e = 5;
ed eseguire il debugger. Quando l'esecuzione viene arrestata, verrà visualizzata la finestra Auto :La variabile
e
non è inizializzata perché la rigae = 5
non è ancora stata eseguita.
Visualizzare i valori restituiti delle chiamate al metodo
Nel codice .NET e C++ è possibile esaminare i valori restituiti nella finestra Auto quando si esegue l'istruzione o l'uscita da una chiamata al metodo. La visualizzazione dei valori restituiti della chiamata al metodo può essere utile quando non vengono archiviate nelle variabili locali. Un metodo può essere usato come parametro o come valore restituito di un altro metodo.
Nota
A partire da Visual Studio 2022 versione 17.12 Preview 3, è anche possibile visualizzare i valori restituiti inline e non solo nella finestra Auto.
Ad esempio, il codice C# seguente aggiunge i valori restituiti di due funzioni:
static void Main(string[] args)
{
int a, b, c, d;
a = 1;
b = 2;
c = 3;
d = 4;
int x = sumVars(a, b) + subtractVars(c, d);
}
private static int sumVars(int i, int j)
{
return i + j;
}
private static int subtractVars(int i, int j)
{
return j - i;
}
Per visualizzare i valori restituiti delle chiamate al sumVars()
metodo e subtractVars()
nella finestra Auto:
Impostare un punto di interruzione nella riga
int x = sumVars(a, b) + subtractVars(c, d);
.Avviare il debug e quando l'esecuzione viene sospesa in corrispondenza del punto di interruzione, selezionare Esegui istruzione/esegui istruzione/ora premere F10.Start debugging, and when execution pauses at the breakpoint, select Step Over or press F10. Nella finestra Auto dovrebbero essere visualizzati i valori restituiti seguenti: