Esercitazione: Eseguire il debug di un'applicazione console .NET con Visual Studio Code
Questa esercitazione presenta gli strumenti di debug disponibili in Visual Studio Code per l'uso delle app .NET.
Prerequisiti
- Questa esercitazione funziona con l'app console creata in Creare un'applicazione console .NET con Visual Studio Code.
Usare la configurazione della build di debug
Le modalità Debug e Versione sono configurazioni della build predefinite di .NET. Usa la configurazione della build di debug per il debug e la configurazione di versione per la distribuzione della versione finale.
Nella configurazione di debug, un programma viene compilato con informazioni di debug simboliche complete e nessuna ottimizzazione. L'ottimizzazione rende più difficile il debug perché la relazione tra il codice sorgente e le istruzioni generate è più complessa. La configurazione di versione di un programma non dispone di informazioni di debug simbolico ed è completamente ottimizzata.
Per impostazione predefinita, le impostazioni di avvio di Visual Studio Code usano la configurazione della build di debug, quindi non è necessario modificarla prima del debug.
Avviare Visual Studio Code.
Apri la cartella del progetto creato in Creare un'applicazione console .NET con Visual Studio Code.
Imposta punto di interruzione
Il punto di interruzione arresta temporaneamente l'esecuzione dell'applicazione prima che venga eseguita la riga con il punto di interruzione.
Aprire il file Program.cs.
Imposta un punto di interruzione nella riga che visualizza il nome, la data e l'ora facendo clic sul margine sinistro della finestra del codice. Il margine sinistro si trova a sinistra dei numeri di riga. Altri modi per impostare un punto di interruzione sono premendo F9 o scegliendo Esegui>Attiva/Disattiva punto di interruzione dal menu mentre è selezionata la riga di codice.
Visual Studio Code indica la riga in cui viene impostato il punto di interruzione visualizzando un punto rosso sul margine sinistro.
Configurare l'input del terminale
Il punto di interruzione si trova dopo una chiamata al metodo Console.ReadLine
. La Console di debug non accetta l'input del terminale per un programma in esecuzione. Per gestire l'input del terminale durante il debug, è possibile usare il terminale integrato (una delle finestre di Visual Studio Code) o un terminale esterno. Per questa esercitazione si usa il terminale integrato.
La cartella del progetto contiene una cartella .vscode. Apri il file launch.json presente nella cartella .vscode.
In launch.json, modifica l'impostazione
console
dainternalConsole
aintegratedTerminal
:"console": "integratedTerminal",
Salva le modifiche.
Consente di iniziare il debug
Apri la visualizzazione Debug selezionando l'icona Debug nel menu di sinistra.
Seleziona la freccia verde nella parte superiore del riquadro, accanto a .NET Core Launch (console). Altri modi per avviare il programma in modalità di debug sono premendo F5 o scegliendo Esegui>Avvia debug dal menu.
Seleziona la scheda Terminale per visualizzare la richiesta "Come ti chiami?" che il programma visualizza prima di attendere una risposta.
Immetti una stringa nella finestra Terminale in risposta alla richiesta del nome, quindi premi Invio.
L'esecuzione del programma si arresta quando raggiunge il punto di interruzione e prima che il metodo
Console.WriteLine
venga eseguito. Nella sezione Variabili locali della finestra Variabili vengono visualizzati i valori delle variabili definite nel metodo attualmente in esecuzione.
Usare la Console di debug
La finestra Console di debug consente di interagire con l'applicazione in fase di debug. È possibile modificare il valore delle variabili per vedere in che modo tale operazione influisce sul programma.
Seleziona la scheda Console di debug.
Immetti
name = "Gracie"
nella richiesta nella parte inferiore della finestra Console di debug e premi il tasto Invio.Immetti
currentDate = DateTime.Parse("2019-11-16T17:25:00Z").ToUniversalTime()
nella parte inferiore della finestra Console di debug e premi il tasto Invio.Nella finestra Variabili vengono visualizzati i nuovi valori delle variabili
name
ecurrentDate
.Continua l'esecuzione del programma selezionando il pulsante Continua sulla barra degli strumenti. Un altro modo per continuare consiste nel premere F5.
Seleziona di nuovo la scheda Terminale.
I valori visualizzati nella finestra della console corrispondono alle modifiche apportate nella Console di debug.
Premi un tasto qualsiasi per uscire dall'applicazione e arrestare il debug.
Impostare un punto di interruzione condizionale
Il programma visualizza la stringa immessa dall'utente. Ma cosa succede se l'utente non immette alcuna stringa? È possibile testare questo comportamento con una funzionalità di debug utile denominata punto di interruzione condizionale.
Fai clic con il pulsante destro del mouse (tieni premuto Ctrl su macOS) sul punto rosso che rappresenta il punto di interruzione. Nel menu di scelta rapida seleziona Modifica punto di interruzione per aprire una finestra di dialogo che consente di immettere un'espressione condizionale.
Seleziona
Expression
nell'elenco a discesa, immetti l'espressione condizionale seguente e premi Invio.String.IsNullOrEmpty(name)
Ogni volta che viene raggiunto il punto di interruzione, il debugger chiama il metodo
String.IsNullOrEmpty(name)
e si interrompe in questa riga solo se la chiamata al metodo restituiscetrue
.Anziché un'espressione condizionale, è possibile specificare un numero di passaggi, che interrompe l'esecuzione del programma prima che un'istruzione venga eseguita un numero specificato di volte. Un'altra opzione consiste nello specificare una condizione di filtro, che interrompe l'esecuzione del programma in base ad attributi quali identificatore di thread, nome del processo o nome del thread.
Avvia il programma con il debug premendo F5.
Nella scheda Terminale, premi il tasto Invio quando ti viene chiesto di immettere il tuo nome.
Poiché la condizione specificata (
name
ènull
o String.Empty) è stata soddisfatta, l'esecuzione del programma si arresta quando raggiunge il punto di interruzione e prima dell'esecuzione del metodoConsole.WriteLine
.La finestra Variabili mostra che il valore della variabile
name
è""
o String.Empty.Verifica che il valore sia una stringa vuota immettendo l'istruzione seguente alla richiesta Console di debug e premendo Invio. Il risultato è
true
.name == String.Empty
Selezionare il pulsante Continua sulla barra degli strumenti per continuare l'esecuzione del programma.
Seleziona la scheda Terminale, quindi premi un tasto qualsiasi per uscire dal programma e arrestare il debug.
Cancella il punto di interruzione facendo clic sul punto nel margine sinistro della finestra del codice. Altri modi per cancellare un punto di interruzione sono premendo F9 o scegliendo Esegui >Attiva/Disattiva punto di interruzione dal menu mentre è selezionata la riga di codice.
Se viene visualizzato un avviso che indica che la condizione del punto di interruzione andrà persa, seleziona Rimuovi punto di interruzione.
Scorrere un programma istruzione per istruzione
Visual Studio Code consente anche di esaminare il programma una riga alla volta e di monitorarne l'esecuzione. In genere, si imposta un punto di interruzione e si segue il flusso del programma attraverso una piccola parte del codice del programma. Poiché questo programma è piccolo, è possibile scorrere l'intero programma un'istruzione alla volta.
Imposta un punto di interruzione nella parentesi graffa di apertura del metodo
Main
.Premere F5 per avviare il debug.
Visual Studio Code evidenzia la riga del punto di interruzione.
A questo punto, la finestra Variabili mostra che la matrice
args
è vuota, ename
ecurrentDate
hanno valori predefiniti.Seleziona Esegui>Eseguire l'istruzione o premi F11.
Visual Studio Code evidenzia la riga successiva.
Seleziona Esegui>Eseguire l'istruzione o premi F11.
Visual Studio Code esegue
Console.WriteLine
per la richiesta del nome ed evidenzia la riga di esecuzione successiva. La riga successiva è l'oggettoConsole.ReadLine
pername
. La finestra Variabili è invariata e nella scheda Terminale viene visualizzata la richiesta "Come ti chiami?".Seleziona Esegui>Eseguire l'istruzione o premi F11.
Visual Studio evidenzia l'assegnazione della variabile
name
. La finestra Variabili mostra chename
è ancoranull
.Rispondi al prompt immettendo una stringa nella scheda Terminale e premendo Invio.
La scheda Terminale potrebbe non visualizzare la stringa immessa durante l'immissione, ma il metodo Console.ReadLine acquisirà l'input.
Seleziona Esegui>Eseguire l'istruzione o premi F11.
Visual Studio Code evidenzia l'assegnazione della variabile
currentDate
. Nella finestra Variabili viene visualizzato il valore restituito dalla chiamata al metodo Console.ReadLine. La scheda Terminale visualizza la stringa immessa al prompt.Seleziona Esegui>Eseguire l'istruzione o premi F11.
Nella finestra Variabili viene visualizzato il valore della variabile
currentDate
dopo l'assegnazione da parte della proprietà DateTime.Now.Seleziona Esegui>Eseguire l'istruzione o premi F11.
Visual Studio Code chiama il metodo Console.WriteLine(String, Object, Object). Nella finestra della console viene visualizzata la stringa formattata.
Seleziona Esegui>Esci da istruzione/routine o premi Shift+F11.
Seleziona la scheda Terminale.
Il terminale visualizza "Premere qualsiasi tasto per uscire..."
Premere un tasto qualsiasi per uscire dal programma.
Usare la configurazione della build di versione
Dopo aver testato la versione di debug dell'applicazione, è necessario compilare e testare anche la versione finale. La versione di rilascio integra le ottimizzazioni del compilatore che possono influire sul comportamento di un'applicazione. Ad esempio, le ottimizzazioni del compilatore progettate per migliorare le prestazioni possono creare scenari di race condition nelle applicazioni multithreading.
Per compilare e testare la versione release dell'applicazione console, apri il Terminale ed esegui il comando seguente:
dotnet run --configuration Release
Risorse aggiuntive
- Debugging in Visual Studio Code (Debug in Visual Studio Code)
Passaggi successivi
In questa esercitazione sono stati usati gli strumenti di debug di Visual Studio Code. Nell'esercitazione successiva si pubblicherà una versione distribuibile dell'app.
Questa esercitazione presenta gli strumenti di debug disponibili in Visual Studio Code per l'uso delle app .NET.
Prerequisiti
- Questa esercitazione funziona con l'app console creata in Creare un'applicazione console .NET con Visual Studio Code.
Usare la configurazione della build di debug
Le modalità Debug e Versione sono configurazioni della build predefinite di .NET. Usa la configurazione della build di debug per il debug e la configurazione di versione per la distribuzione della versione finale.
Nella configurazione di debug, un programma viene compilato con informazioni di debug simboliche complete e nessuna ottimizzazione. L'ottimizzazione rende più difficile il debug perché la relazione tra il codice sorgente e le istruzioni generate è più complessa. La configurazione di versione di un programma non dispone di informazioni di debug simbolico ed è completamente ottimizzata.
Per impostazione predefinita, le impostazioni di avvio di Visual Studio Code usano la configurazione della build di debug, quindi non è necessario modificarla prima del debug.
Avviare Visual Studio Code.
Apri la cartella del progetto creato in Creare un'applicazione console .NET con Visual Studio Code.
Imposta punto di interruzione
Il punto di interruzione arresta temporaneamente l'esecuzione dell'applicazione prima che venga eseguita la riga con il punto di interruzione.
Aprire il file Program.cs.
Imposta un punto di interruzione nella riga che visualizza il nome, la data e l'ora facendo clic sul margine sinistro della finestra del codice. Il margine sinistro si trova a sinistra dei numeri di riga. Altri modi per impostare un punto di interruzione sono premendo F9 o scegliendo Esegui>Attiva/Disattiva punto di interruzione dal menu mentre è selezionata la riga di codice.
Visual Studio Code indica la riga in cui viene impostato il punto di interruzione visualizzando un punto rosso sul margine sinistro.
Configurare l'input del terminale
Il punto di interruzione si trova dopo una chiamata al metodo Console.ReadLine
. La Console di debug non accetta l'input del terminale per un programma in esecuzione. Per gestire l'input del terminale durante il debug, è possibile usare il terminale integrato (una delle finestre di Visual Studio Code) o un terminale esterno. Per questa esercitazione si usa il terminale integrato.
La cartella del progetto contiene una cartella .vscode. Apri il file launch.json presente nella cartella .vscode.
In launch.json, modifica l'impostazione
console
dainternalConsole
aintegratedTerminal
:"console": "integratedTerminal",
Salva le modifiche.
Consente di iniziare il debug
Apri la visualizzazione Debug selezionando l'icona Debug nel menu di sinistra.
Seleziona la freccia verde nella parte superiore del riquadro, accanto a .NET Core Launch (console). Altri modi per avviare il programma in modalità di debug sono premendo F5 o scegliendo Esegui>Avvia debug dal menu.
Seleziona la scheda Terminale per visualizzare la richiesta "Come ti chiami?" che il programma visualizza prima di attendere una risposta.
Immetti una stringa nella finestra Terminale in risposta alla richiesta del nome, quindi premi Invio.
L'esecuzione del programma si arresta quando raggiunge il punto di interruzione e prima che il metodo
Console.WriteLine
venga eseguito. Nella sezione Variabili locali della finestra Variabili vengono visualizzati i valori delle variabili definite nel metodo attualmente in esecuzione.
Usare la Console di debug
La finestra Console di debug consente di interagire con l'applicazione in fase di debug. È possibile modificare il valore delle variabili per vedere in che modo tale operazione influisce sul programma.
Seleziona la scheda Console di debug.
Immetti
name = "Gracie"
nella richiesta nella parte inferiore della finestra Console di debug e premi il tasto Invio.Immetti
currentDate = DateTime.Parse("2019-11-16T17:25:00Z").ToUniversalTime()
nella parte inferiore della finestra Console di debug e premi il tasto Invio.Nella finestra Variabili vengono visualizzati i nuovi valori delle variabili
name
ecurrentDate
.Continua l'esecuzione del programma selezionando il pulsante Continua sulla barra degli strumenti. Un altro modo per continuare consiste nel premere F5.
Seleziona di nuovo la scheda Terminale.
I valori visualizzati nella finestra della console corrispondono alle modifiche apportate nella Console di debug.
Premi un tasto qualsiasi per uscire dall'applicazione e arrestare il debug.
Impostare un punto di interruzione condizionale
Il programma visualizza la stringa immessa dall'utente. Ma cosa succede se l'utente non immette alcuna stringa? È possibile testare questo comportamento con una funzionalità di debug utile denominata punto di interruzione condizionale.
Fai clic con il pulsante destro del mouse (tieni premuto Ctrl su macOS) sul punto rosso che rappresenta il punto di interruzione. Nel menu di scelta rapida seleziona Modifica punto di interruzione per aprire una finestra di dialogo che consente di immettere un'espressione condizionale.
Seleziona
Expression
nell'elenco a discesa, immetti l'espressione condizionale seguente e premi Invio.String.IsNullOrEmpty(name)
Ogni volta che viene raggiunto il punto di interruzione, il debugger chiama il metodo
String.IsNullOrEmpty(name)
e si interrompe in questa riga solo se la chiamata al metodo restituiscetrue
.Anziché un'espressione condizionale, è possibile specificare un numero di passaggi, che interrompe l'esecuzione del programma prima che un'istruzione venga eseguita un numero specificato di volte. Un'altra opzione consiste nello specificare una condizione di filtro, che interrompe l'esecuzione del programma in base ad attributi quali identificatore di thread, nome del processo o nome del thread.
Avvia il programma con il debug premendo F5.
Nella scheda Terminale, premi il tasto Invio quando ti viene chiesto di immettere il tuo nome.
Poiché la condizione specificata (
name
ènull
o String.Empty) è stata soddisfatta, l'esecuzione del programma si arresta quando raggiunge il punto di interruzione e prima dell'esecuzione del metodoConsole.WriteLine
.La finestra Variabili mostra che il valore della variabile
name
è""
o String.Empty.Verifica che il valore sia una stringa vuota immettendo l'istruzione seguente alla richiesta Console di debug e premendo Invio. Il risultato è
true
.name == String.Empty
Selezionare il pulsante Continua sulla barra degli strumenti per continuare l'esecuzione del programma.
Seleziona la scheda Terminale, quindi premi un tasto qualsiasi per uscire dal programma e arrestare il debug.
Cancella il punto di interruzione facendo clic sul punto nel margine sinistro della finestra del codice. Altri modi per cancellare un punto di interruzione sono premendo F9 o scegliendo Esegui >Attiva/Disattiva punto di interruzione dal menu mentre è selezionata la riga di codice.
Se viene visualizzato un avviso che indica che la condizione del punto di interruzione andrà persa, seleziona Rimuovi punto di interruzione.
Scorrere un programma istruzione per istruzione
Visual Studio Code consente anche di esaminare il programma una riga alla volta e di monitorarne l'esecuzione. In genere, si imposta un punto di interruzione e si segue il flusso del programma attraverso una piccola parte del codice del programma. Poiché questo programma è piccolo, è possibile scorrere l'intero programma un'istruzione alla volta.
Imposta un punto di interruzione nella parentesi graffa di apertura del metodo
Main
.Premere F5 per avviare il debug.
Visual Studio Code evidenzia la riga del punto di interruzione.
A questo punto, la finestra Variabili mostra che la matrice
args
è vuota, ename
ecurrentDate
hanno valori predefiniti.Seleziona Esegui>Eseguire l'istruzione o premi F11.
Visual Studio Code evidenzia la riga successiva.
Seleziona Esegui>Eseguire l'istruzione o premi F11.
Visual Studio Code esegue
Console.WriteLine
per la richiesta del nome ed evidenzia la riga di esecuzione successiva. La riga successiva è l'oggettoConsole.ReadLine
pername
. La finestra Variabili è invariata e nella scheda Terminale viene visualizzata la richiesta "Come ti chiami?".Seleziona Esegui>Eseguire l'istruzione o premi F11.
Visual Studio evidenzia l'assegnazione della variabile
name
. La finestra Variabili mostra chename
è ancoranull
.Rispondi al prompt immettendo una stringa nella scheda Terminale e premendo Invio.
La scheda Terminale potrebbe non visualizzare la stringa immessa durante l'immissione, ma il metodo Console.ReadLine acquisirà l'input.
Seleziona Esegui>Eseguire l'istruzione o premi F11.
Visual Studio Code evidenzia l'assegnazione della variabile
currentDate
. Nella finestra Variabili viene visualizzato il valore restituito dalla chiamata al metodo Console.ReadLine. La scheda Terminale visualizza la stringa immessa al prompt.Seleziona Esegui>Eseguire l'istruzione o premi F11.
Nella finestra Variabili viene visualizzato il valore della variabile
currentDate
dopo l'assegnazione da parte della proprietà DateTime.Now.Seleziona Esegui>Eseguire l'istruzione o premi F11.
Visual Studio Code chiama il metodo Console.WriteLine(String, Object, Object). Nella finestra della console viene visualizzata la stringa formattata.
Seleziona Esegui>Esci da istruzione/routine o premi Shift+F11.
Seleziona la scheda Terminale.
Il terminale visualizza "Premere qualsiasi tasto per uscire..."
Premere un tasto qualsiasi per uscire dal programma.
Usare la configurazione della build di versione
Dopo aver testato la versione di debug dell'applicazione, è necessario compilare e testare anche la versione finale. La versione di rilascio integra le ottimizzazioni del compilatore che possono influire sul comportamento di un'applicazione. Ad esempio, le ottimizzazioni del compilatore progettate per migliorare le prestazioni possono creare scenari di race condition nelle applicazioni multithreading.
Per compilare e testare la versione release dell'applicazione console, apri il Terminale ed esegui il comando seguente:
dotnet run --configuration Release
Risorse aggiuntive
- Debugging in Visual Studio Code (Debug in Visual Studio Code)
Passaggi successivi
In questa esercitazione sono stati usati gli strumenti di debug di Visual Studio Code. Nell'esercitazione successiva si pubblicherà una versione distribuibile dell'app.
Questa esercitazione presenta gli strumenti di debug disponibili in Visual Studio Code per l'uso delle app .NET.
Prerequisiti
- Questa esercitazione funziona con l'app console creata in Creare un'applicazione console .NET con Visual Studio Code.
Usare la configurazione della build di debug
Le modalità Debug e Versione sono configurazioni della build predefinite di .NET. Usa la configurazione della build di debug per il debug e la configurazione di versione per la distribuzione della versione finale.
Nella configurazione di debug, un programma viene compilato con informazioni di debug simboliche complete e nessuna ottimizzazione. L'ottimizzazione rende più difficile il debug perché la relazione tra il codice sorgente e le istruzioni generate è più complessa. La configurazione di versione di un programma non dispone di informazioni di debug simbolico ed è completamente ottimizzata.
Per impostazione predefinita, le impostazioni di avvio di Visual Studio Code usano la configurazione della build di debug, quindi non è necessario modificarla prima del debug.
Avviare Visual Studio Code.
Apri la cartella del progetto creato in Creare un'applicazione console .NET con Visual Studio Code.
Imposta punto di interruzione
Il punto di interruzione arresta temporaneamente l'esecuzione dell'applicazione prima che venga eseguita la riga con il punto di interruzione.
Aprire il file Program.cs.
Imposta un punto di interruzione nella riga che visualizza il nome, la data e l'ora facendo clic sul margine sinistro della finestra del codice. Il margine sinistro si trova a sinistra dei numeri di riga. Altri modi per impostare un punto di interruzione sono premendo F9 o scegliendo Esegui>Attiva/Disattiva punto di interruzione dal menu mentre è selezionata la riga di codice.
Visual Studio Code indica la riga in cui viene impostato il punto di interruzione visualizzando un punto rosso sul margine sinistro.
Configurare l'input del terminale
Il punto di interruzione si trova dopo una chiamata al metodo Console.ReadLine
. La Console di debug non accetta l'input del terminale per un programma in esecuzione. Per gestire l'input del terminale durante il debug, è possibile usare il terminale integrato (una delle finestre di Visual Studio Code) o un terminale esterno. Per questa esercitazione si usa il terminale integrato.
Aprire .vscode/launch.json.
Modificare l'impostazione
console
dainternalConsole
aintegratedTerminal
:"console": "integratedTerminal",
Salva le modifiche.
Consente di iniziare il debug
Apri la visualizzazione Debug selezionando l'icona Debug nel menu di sinistra.
Seleziona la freccia verde nella parte superiore del riquadro, accanto a .NET Core Launch (console). Altri modi per avviare il programma in modalità di debug sono premendo F5 o scegliendo Esegui>Avvia debug dal menu.
Seleziona la scheda Terminale per visualizzare la richiesta "Come ti chiami?" che il programma visualizza prima di attendere una risposta.
Immetti una stringa nella finestra Terminale in risposta alla richiesta del nome, quindi premi Invio.
L'esecuzione del programma si arresta quando raggiunge il punto di interruzione e prima che il metodo
Console.WriteLine
venga eseguito. Nella sezione Variabili locali della finestra Variabili vengono visualizzati i valori delle variabili definite nel metodo attualmente in esecuzione.
Usare la Console di debug
La finestra Console di debug consente di interagire con l'applicazione in fase di debug. È possibile modificare il valore delle variabili per vedere in che modo tale operazione influisce sul programma.
Seleziona la scheda Console di debug.
Immetti
name = "Gracie"
nella richiesta nella parte inferiore della finestra Console di debug e premi il tasto Invio.Immetti
currentDate = DateTime.Parse("2019-11-16T17:25:00Z").ToUniversalTime()
nella parte inferiore della finestra Console di debug e premi il tasto Invio.Nella finestra Variabili vengono visualizzati i nuovi valori delle variabili
name
ecurrentDate
.Continua l'esecuzione del programma selezionando il pulsante Continua sulla barra degli strumenti. Un altro modo per continuare consiste nel premere F5.
Seleziona di nuovo la scheda Terminale.
I valori visualizzati nella finestra della console corrispondono alle modifiche apportate nella Console di debug.
Premi un tasto qualsiasi per uscire dall'applicazione e arrestare il debug.
Impostare un punto di interruzione condizionale
Il programma visualizza la stringa immessa dall'utente. Ma cosa succede se l'utente non immette alcuna stringa? È possibile testare questo comportamento con una funzionalità di debug utile denominata punto di interruzione condizionale.
Fai clic con il pulsante destro del mouse (tieni premuto Ctrl su macOS) sul punto rosso che rappresenta il punto di interruzione. Nel menu di scelta rapida seleziona Modifica punto di interruzione per aprire una finestra di dialogo che consente di immettere un'espressione condizionale.
Seleziona
Expression
nell'elenco a discesa, immetti l'espressione condizionale seguente e premi Invio.String.IsNullOrEmpty(name)
Ogni volta che viene raggiunto il punto di interruzione, il debugger chiama il metodo
String.IsNullOrEmpty(name)
e si interrompe in questa riga solo se la chiamata al metodo restituiscetrue
.Anziché un'espressione condizionale, è possibile specificare un numero di passaggi, che interrompe l'esecuzione del programma prima che un'istruzione venga eseguita un numero specificato di volte. Un'altra opzione consiste nello specificare una condizione di filtro, che interrompe l'esecuzione del programma in base ad attributi quali identificatore di thread, nome del processo o nome del thread.
Avvia il programma con il debug premendo F5.
Nella scheda Terminale, premi il tasto Invio quando ti viene chiesto di immettere il tuo nome.
Poiché la condizione specificata (
name
ènull
o String.Empty) è stata soddisfatta, l'esecuzione del programma si arresta quando raggiunge il punto di interruzione e prima dell'esecuzione del metodoConsole.WriteLine
.La finestra Variabili mostra che il valore della variabile
name
è""
o String.Empty.Verifica che il valore sia una stringa vuota immettendo l'istruzione seguente alla richiesta Console di debug e premendo Invio. Il risultato è
true
.name == String.Empty
Selezionare il pulsante Continua sulla barra degli strumenti per continuare l'esecuzione del programma.
Seleziona la scheda Terminale, quindi premi un tasto qualsiasi per uscire dal programma e arrestare il debug.
Cancella il punto di interruzione facendo clic sul punto nel margine sinistro della finestra del codice. Altri modi per cancellare un punto di interruzione sono premendo F9 o scegliendo Esegui >Attiva/Disattiva punto di interruzione dal menu mentre è selezionata la riga di codice.
Se viene visualizzato un avviso che indica che la condizione del punto di interruzione andrà persa, seleziona Rimuovi punto di interruzione.
Scorrere un programma istruzione per istruzione
Visual Studio Code consente anche di esaminare il programma una riga alla volta e di monitorarne l'esecuzione. In genere, si imposta un punto di interruzione e si segue il flusso del programma attraverso una piccola parte del codice del programma. Poiché questo programma è piccolo, è possibile scorrere l'intero programma un'istruzione alla volta.
Imposta un punto di interruzione nella parentesi graffa di apertura del metodo
Main
.Premere F5 per avviare il debug.
Visual Studio Code evidenzia la riga del punto di interruzione.
A questo punto, la finestra Variabili mostra che la matrice
args
è vuota, ename
ecurrentDate
hanno valori predefiniti.Seleziona Esegui>Eseguire l'istruzione o premi F11.
Visual Studio Code evidenzia la riga successiva.
Seleziona Esegui>Eseguire l'istruzione o premi F11.
Visual Studio Code esegue
Console.WriteLine
per la richiesta del nome ed evidenzia la riga di esecuzione successiva. La riga successiva è l'oggettoConsole.ReadLine
pername
. La finestra Variabili è invariata e nella scheda Terminale viene visualizzata la richiesta "Come ti chiami?".Seleziona Esegui>Eseguire l'istruzione o premi F11.
Visual Studio evidenzia l'assegnazione della variabile
name
. La finestra Variabili è deselezionata.Rispondi al prompt immettendo una stringa nella scheda Terminale e premendo Invio.
La scheda Terminale potrebbe non visualizzare la stringa immessa durante l'immissione, ma il metodo Console.ReadLine acquisirà l'input.
Nella finestra Variabili viene visualizzato il valore restituito dalla chiamata al metodo Console.ReadLine.
Seleziona Esegui>Eseguire l'istruzione o premi F11.
Visual Studio Code evidenzia l'assegnazione della variabile
currentDate
. La scheda Terminale visualizza la stringa immessa al prompt.Seleziona Esegui>Eseguire l'istruzione o premi F11.
Nella finestra Variabili viene visualizzato il valore della variabile
currentDate
dopo l'assegnazione da parte della proprietà DateTime.Now.Seleziona Esegui>Eseguire l'istruzione o premi F11.
Visual Studio Code chiama il metodo Console.WriteLine(String, Object, Object). Nella finestra della console viene visualizzata la stringa formattata.
Seleziona Esegui>Esci da istruzione/routine o premi Shift+F11.
Seleziona la scheda Terminale.
Il terminale visualizza "Premere qualsiasi tasto per uscire..."
Premere un tasto qualsiasi per uscire dal programma.
Usare la configurazione della build di versione
Dopo aver testato la versione di debug dell'applicazione, è necessario compilare e testare anche la versione finale. La versione di rilascio integra le ottimizzazioni del compilatore che possono influire sul comportamento di un'applicazione. Ad esempio, le ottimizzazioni del compilatore progettate per migliorare le prestazioni possono creare scenari di race condition nelle applicazioni multithreading.
Per compilare e testare la versione release dell'applicazione console, apri il Terminale ed esegui il comando seguente:
dotnet run --configuration Release
Risorse aggiuntive
- Debugging in Visual Studio Code (Debug in Visual Studio Code)
Passaggi successivi
In questa esercitazione sono stati usati gli strumenti di debug di Visual Studio Code. Nell'esercitazione successiva si pubblicherà una versione distribuibile dell'app.