Condividi tramite


Mappare i metodi sullo stack di chiamate durante il debug in Visual Studio

Creare una mappa codici per tracciare visivamente lo stack di chiamate durante il debug. È possibile inserire note sulla mappa per tenere traccia dell'attività del codice e in tal modo concentrarsi sull'individuazione di bug.

Debug con stack di chiamate nelle mappe codici

Requisiti necessari:

Vedere: Video: Debug visivo con l'integrazione del debugger con la mappa codici (Channel 9) • Map the call stack • Make notes about the code • Update the map with the next call stack • Add related code to the map • Find bugs using the map • Q & A

Eseguire il mapping dello stack di chiamate

  1. Avviare il debug. (Tastiera: F5)

  2. Dopo che l'app passa alla modalità di interruzione o si esegue una funzione, scegliere Mappa codici. Tastiera: CTRL + MAIUSC + '.

    Scegliere la mappa codici per avviare il mapping dello stack di chiamate

    Lo stack di chiamate corrente verrà visualizzato in arancione in una nuova mappa codici:

    Visualizzare lo stack di chiamate nella mappa codici

    La mappa si aggiornerà automaticamente durante il debug. Vedere Update the map with the next call stack.

Aggiungere appunti sul codice

Aggiungere commenti per tenere traccia delle operazioni in corso nel codice. Per aggiungere una nuova riga in un commento, premere MAIUSC + INVIO.

Aggiungere un commento allo stack di chiamate nella mappa codici

Aggiornare la mappa con lo stack di chiamata successiva

Eseguire l'app fino al punto di interruzione successivo o eseguire una funzione. La mappa aggiungerà un nuovo stack di chiamate.

Aggiornare la mappa codici con lo stack di chiamate successivo

Aggiungere il codice correlato alla mappa

Ora che si dispone di una mappa, è possibile effettuare diverse operazioni. Se si usa Visual C# .NET o Visual Basic .NET, aggiungere elementi, ad esempio campi, proprietà e altri metodi, per tenere traccia delle operazioni in corso nel codice.

Fare doppio clic su un metodo per visualizzarne la definizione del codice. Tastiera: selezionare il metodo nella mappa e premere F12.

Passare alla definizione del codice per un metodo nella mappa codici

Aggiungere gli elementi di cui si vuole tenere traccia nella mappa.

Visualizzare i campi di un metodo nella mappa codici dello stack di chiamate

Campi correlati a un metodo nella mappa codici dello stack di chiamate

Di seguito è possibile visualizzare i metodi in cui vengono usati gli stessi campi. Gli elementi aggiunti più di recente sono indicati in verde.

Continuare a compilare la mappa per visualizzare altro codice.

Visualizzare i metodi che usano un campo: mappa codici dello stack di chiamate

Metodi che usano un campo nella mappa codici dello stack di chiamate

Individuare bug usando la mappa

Visualizzando il codice, sarà possibile rilevare i bug più rapidamente. Ad esempio, si supponga di esaminare un bug in un programma di disegno. Quando si disegna una linea e si tenta di annullare l'operazione, non accadrà nulla finché non si disegnerà un'altra riga.

Pertanto, impostare punti di interruzione, avviare il debug e compilare una mappa come quella indicata di seguito.

Aggiungere un altro stack di chiamate alla mappa codici

Tutte le azioni dell'utente nella mappa chiamano Repaint, tranne undo. Ciò potrebbe spiegare per quale motivo undo non funziona nell'immediato.

Dopo aver corretto il bug e continuato a eseguire il programma, la mappa aggiungerà la nuova chiamata da undo in Repaint:

Aggiungere una nuova chiamata di metodo allo stack di chiamate nella mappa codici

Domande e risposte

  • Non tutte le chiamate vengono visualizzate nella mappa. Perché?

    Per impostazione predefinita, nella mappa viene visualizzato solo il codice. Per visualizzare il codice esterno, attivarlo nella finestra Stack di chiamate o disattivare Abilita Just My Code nelle opzioni di debug di Visual Studio.

  • La modifica della mappa influisce sul codice?

    La modifica della mappa non influisce in alcun modo sul codice. È possibile rinominare, spostare o rimuovere qualsiasi elemento nella mappa.

  • Cosa significa questo messaggio: "Il diagramma potrebbe essere basato su una versione precedente del codice"?

    È possibile che il codice sia stato modificato dopo l'ultimo aggiornamento della mappa. Ad esempio, nel codice potrebbe non essere più disponibile una chiamata alla mappa. Chiudere il messaggio, quindi provare a ricompilare la soluzione prima di aggiornare di nuovo la mappa.

  • In che modo è possibile controllare il layout della mappa?

    Aprire il menu Layout nella barra degli strumenti della mappa:

    • Modificare il layout predefinito.

    • Per arrestare automaticamente la ridisposizione della mappa, disattivare Layout automatico durante il debug.

    • Per ridisporre al minimo la mappa quando si aggiungono elementi, disattivare Layout incrementale.

  • È possibile condividere la mappa con altri?

    È possibile esportare la mappa, inviarla ad altri se è installato Microsoft Outlook o salvarla nella soluzione in modo che sia possibile archiviarla nel controllo della versione di Team Foundation.

    Condividere la mappa codici dello stack di chiamate con altri utenti

  • In che modo è possibile arrestare l'aggiunta automatica di nuovi stack di chiamate nella mappa?

    Scegliere Pulsante: visualizzare automaticamente lo stack di chiamate nella mappa codici nella barra degli strumenti della mappa. Per aggiungere manualmente lo stack di chiamate corrente nella mappa, premere CTRL + MAIUSC + '.

    La mappa continuerà a evidenziare gli stack di chiamate esistenti sulla mappa durante il debug.

  • Che cosa significano le icone degli elementi e le frecce?

    Per ottenere altre informazioni su un elemento, esaminarne la descrizione comando. È anche possibile consultare la legenda per conoscere il significato di ciascuna icona.

    Significato delle icone nella mappa codici dello stack di chiamate

Vedere: Map the call stack • Make notes about the code • Update the map with the next call stack • Add related code to the map • Find bugs using the map