Creare una mappa visiva dello stack di chiamate durante il debug (C#, Visual Basic, C++, JavaScript)

Creare una mappa del codice per tracciare visivamente lo stack di chiamate durante il debug. È possibile inserire note sulla mappa per tenere traccia del codice e concentrarsi sull'individuazione dei bug.

Per informazioni dettagliate sui comandi e sulle azioni che è possibile usare con le mappe codici, vedere Esplorare e ridisporre le mappe del codice.

Importante

È possibile creare mappe codice solo in Visual Studio Enterprise Edition.

Di seguito è riportato un rapido sguardo a una mappa codici:

Debugging with call stacks on code maps

Eseguire il mapping dello stack di chiamate

  1. In un progetto Visual Studio Enterprise C#, Visual Basic, C++o JavaScript avviare il debug selezionando Avvia>debug o premendo F5.

  2. Dopo che l'app passa alla modalità di interruzione o si passa a una funzione, selezionare Esegui debug>mappa codice o premere CTRL+MAIUSC.+`

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

    See call stack on code map

La mappa del codice viene aggiornata automaticamente man mano che si continua il debug. La modifica degli elementi o del layout della mappa non influisce sul codice in alcun modo. È possibile rinominare, spostare o rimuovere qualsiasi elemento nella mappa.

Per ottenere altre informazioni su un elemento, passare il puntatore del mouse su di esso e osservare la descrizione comando dell'elemento. È anche possibile selezionare Legenda sulla barra degli strumenti per scoprire cosa significa ogni icona.

Code Map Legend

Nota

Messaggio Il diagramma può essere basato su una versione precedente del codice nella parte superiore della mappa del codice indica che il codice potrebbe essere 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.

Eseguire il mapping del codice esterno

Per impostazione predefinita, nella mappa viene visualizzato solo il proprio codice. Per visualizzare il codice esterno sulla mappa:

  • Fare clic con il pulsante destro del mouse nella finestra Stack di chiamate e scegliere Mostra codice esterno:

    Display external code using the Call Stack window

  • In alternativa, deselezionare Abilita Just My Code in Visual Studio Tools (o Debug)> Opzioni>debug:

    Show external code using Options dialog

Controllare il layout della mappa

La modifica del layout della mappa non influisce sul codice in alcun modo.

Per controllare il layout della mappa, selezionare il menu Layout sulla barra degli strumenti della mappa.

Nel menu Layout è possibile:

  • Modificare il layout predefinito.
  • Interrompere la ridisposizione automatica della mappa deselezionando Layout automatico durante il debug.
  • Ridisporre la mappa il minor possibile quando si aggiungono elementi deselezionando Il layout incrementale.

Prendere note sul codice

È possibile aggiungere commenti per tenere traccia di ciò che accade nel codice.

Per aggiungere un commento, fare clic con il pulsante destro del mouse sulla mappa codice e scegliere Modifica>nuovo commento, quindi digitare il commento.

Per aggiungere una nuova riga in un commento, premere MAIUSC+INVIO.

Add comment to call stack on code map

Aggiornare la mappa con lo stack di chiamate successivo

Quando si esegue l'app al punto di interruzione successivo o si esegue un passaggio in una funzione, la mappa aggiunge automaticamente nuovi stack di chiamate.

Update code map with next call stack

Per impedire alla mappa di aggiungere automaticamente nuovi stack di chiamate, selezionare Show call stack on code map automatically sulla barra degli strumenti della mappa del codice. La mappa continua a evidenziare gli stack di chiamate esistenti. Per aggiungere manualmente lo stack di chiamate corrente alla mappa, premere CTRL+MAIUSC+`.

Aggiungere codice correlato alla mappa

Dopo aver creato una mappa, in C# o Visual Basic, è possibile aggiungere elementi come campi, proprietà e altri metodi per tenere traccia di ciò che accade nel codice.

Per passare alla definizione di un metodo nel codice, fare doppio clic sul metodo nella mappa oppure selezionarlo e premere F12 oppure fare clic con il pulsante destro del mouse su di esso e scegliere Vai a definizione.

Go to code definition for a method on code map

Per aggiungere elementi da tenere traccia della mappa, fare clic con il pulsante destro del mouse su un metodo e selezionare gli elementi da tenere traccia. Gli elementi aggiunti più di recente vengono visualizzati in verde.

Fields related to a method on call stack code map

Nota

Per impostazione predefinita, quando si aggiungono gli elementi alla mappa si aggiungono anche i nodi di gruppo padre, ad esempio la classe, spazio dei nomi e l'assembly. È possibile disattivare questa funzionalità e attivare selezionando il pulsante Includi genitori sulla barra degli strumenti della mappa del codice oppure premendo CTRL mentre si aggiungono elementi.

Show fields in a method on call stack code map

Continuare a compilare la mappa per visualizzare altro codice.

See methods that use a field: call stack code map

Methods that use a field on call stack code map

Trovare bug usando la mappa

Visualizzando il codice, sarà possibile rilevare i bug più rapidamente. Si supponga, ad esempio, di analizzare un bug in un'app 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 nei metodi clear, undo e Repaint, avviare il debug e compilare una mappa come quella indicata di seguito:

Add another call stack to code map

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 aver continuato a eseguire l'app, la mappa aggiunge la nuova chiamata da undo a Repaint:

Add new method call to call stack on code map

Condividere la mappa con altri utenti

È possibile esportare una mappa, inviarla ad altri utenti con Microsoft Outlook, salvarla nella soluzione e archiviarla nel controllo della versione.

Per condividere o salvare la mappa, usare Condividi nella barra degli strumenti della mappa del codice.

Share call stack code map with others