Esaminare l'app con il debug cronologico in IntelliTrace in Visual Studio (C#, Visual Basic, C++)
È possibile usare il debug cronologico per spostarsi indietro e avanti nell'esecuzione dell'applicazione ed esaminarne lo stato.
È possibile utilizzare IntelliTrace in Visual Studio Enterprise edition (ma non le edizioni Professional o Community).
Esplorare il codice con il debug cronologico
Iniziamo con un semplice programma che dispone di un bug. Aggiungere il codice seguente al file App.xaml.cs nell'applicazione:
static void Main(string[] args)
{
int testInt = 0;
int resultInt = AddIterative(testInt);
Console.WriteLine(resultInt);
}
private static int AddIterative(int j)
{
for (int i = 0; i < 20; i++)
{
j = AddInt(j);
}
return j;
}
private static int AddInt(int add)
{
if (add == 10)
{
return add += 25;
}
return ++add;
}
Si presuppone che il valore previsto di resultInt
dopo la chiamata AddIterative()
è pari a 20 (il risultato di incremento testInt
20 volte). Si presuppone anche che non sia possibile visualizzare il bug in AddInt()
. Ma il risultato è in realtà 44. Come è possibile individuare i bug senza scorrere AddIterative()
10 volte? È possibile utilizzare il debug cronologico per individuare l'errore in modo più semplice e rapido. In tal caso, eseguire la procedura seguente:
In Strumenti > Opzioni > IntelliTrace > Generale verificare che IntelliTrace sia abilitato e selezionare Eventi IntelliTrace e informazioni sulle chiamate. Se non si seleziona questa opzione, non sarà in grado di visualizzare la barra di navigazione (come illustrato di seguito).
Impostare un punto di interruzione nella riga
Console.WriteLine(resultInt);
.Avviare il debug. Il codice viene eseguito fino al punto di interruzione. Nella finestra Variabili locali verificare che il valore corrente di
resultInt
sia 44.Aprire la finestra Strumenti di diagnostica (Debug > Mostra strumenti di diagnostica). La finestra codici dovrebbe risultare simile alla seguente:
Verrà visualizzata una doppia freccia accanto al margine sinistro, appena sopra il punto di interruzione. Quest'area viene chiamata barra di navigazione e viene usata per il debug cronologico. Fare clic sulla freccia.
Nella finestra del codice, si noterà che la riga di codice precedente (
int resultInt = AddIterative(testInt);
) è di colore rosa. Sopra la finestra si noterà un messaggio che indica che ci si trova nel debug cronologico.La finestra del codice è ora simile al seguente:
È ora possibile eseguire l'istruzione nel
AddIterative()
metodo (F11 o il pulsante Esegui istruzione nella barra di spostamento). Avanti (F10 o Vai alla chiamata successiva nella barra di spostamento). La riga rosa contiene ora ilj = AddInt(j);
riga. F10 in questo caso non passa alla riga di codice successiva. Al contrario, i passaggi per la successiva chiamata di funzione. Il debug cronologico consente di passare da una chiamata a altra e ignora le righe di codice che non includono una chiamata di funzione.Eseguire un'istruzione nel metodo
AddInt()
Verrà visualizzato immediatamente il bug nel codice.
Contenuto correlato
Questa procedura è solo un breve accenno delle operazioni che si possono eseguire con il debug cronologico.
- Per visualizzare gli snapshot durante il debug, vedere Esaminare gli stati dell'app precedenti usando IntelliTrace.
- Per altre informazioni sulle diverse impostazioni e gli effetti dei diversi pulsanti nella barra di navigazione, vedere Funzionalità IntelliTrace.