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.

Nota

Questo argomento si applica a Visual Studio in Windows. Per Visual Studio per Mac, vedere Visualizzazioni dei dati in Visual Studio per Mac.

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 :

Screenshot della finestra Variabili locali con il file impostato su un valore System.IO.FileStream.

Screenshot della finestra Variabili locali con il file impostato su un valore System.IO.FileStream.

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 e var1var2. 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.

Screenshot della finestra Cerca nella finestra Variabili locali

Screenshot della finestra Cerca nella finestra Variabili locali

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 .

Screenshot delle proprietà Aggiungi nella finestra Variabili locali.

È 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.

Screenshot delle proprietà preferite filtro.

Screenshot dei nomi delle proprietà Toggle.

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.

Screenshot della barra degli strumenti Percorso di debug.

Screenshot della barra degli strumenti Percorso di debug.

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 :

    Screenshot della finestra Auto con il valore di c impostato su 0.

    Screenshot della finestra Auto con il valore di c impostato su 0.

    Il valore di c è 0, perché la riga c = 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 :

    Screenshot della finestra Auto con la riga evidenziata che mostra int c con il valore 3.

    Screenshot della finestra Auto con la riga evidenziata che mostra int c con il valore 3.

    La variabile e non è inizializzata perché la riga e = 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.

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:

  1. Impostare un punto di interruzione nella riga int x = sumVars(a, b) + subtractVars(c, d); .

  2. 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:

    Screenshot del valore restituito auto C#.

    Screenshot del valore restituito auto C#.