Condividi tramite


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 creare note sulla mappa per tenere traccia delle operazioni eseguite dal codice, in modo da potersi concentrare sulla ricerca di 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:

Debug con stack di chiamate nelle mappe del codice

Mappare lo 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 viene visualizzato in arancione su una nuova mappa del codice:

    Visualizzare lo stack delle chiamate sulla mappa del codice

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 elementi sulla mappa.

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

Legenda della mappa di codici

Annotazioni

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, una chiamata sulla mappa potrebbe non esistere più nel codice. Chiudere il messaggio, quindi provare a ricompilare la soluzione prima di aggiornare nuovamente la mappa.

Eseguire il mapping del codice esterno

Per impostazione predefinita, sulla mappa viene visualizzato solo il codice personalizzato. 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:

    Visualizzare il codice esterno usando la finestra Stack di chiamate

  • In alternativa, deselezionare la casella di controllo Abilita Just My Code in Visual Studio:

    Questa opzione è disponibile nel riquadroStrumenti (o >) nella sezione Tutte le impostazioni>Debug>generale:

    Screenshot che mostra come selezionare l'opzione Abilita Just My Code in Visual Studio.

    Questa opzione è disponibile nella finestra di dialogo Strumenti (o Opzioni debug) > nella sezioneDebug>generale:

    Mostra codice esterno tramite la finestra di dialogo Opzioni

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.
  • Ridisponga la mappa quanto meno 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.

Aggiungere un commento allo stack di chiamate nella mappa del codice

Aggiornare la mappa con lo stack di chiamate successivo

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

Aggiornare la mappa del codice con lo stack di chiamate successivo

Per impedire alla mappa di aggiungere automaticamente nuovi stack di chiamate, selezionare Mostra stack di chiamate automaticamente sulla mappa del codice 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.

Passare alla definizione di codice per un metodo nella mappa codice

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.

Campi correlati a un metodo sulla mappa del codice dello stack di chiamate

Annotazioni

Per impostazione predefinita, l'aggiunta di elementi alla mappa aggiunge anche i nodi del gruppo padre, ad esempio la classe, lo 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.

Visualizzare i campi in un metodo sulla mappa del codice dello stack di chiamate

Continuare a compilare la mappa per visualizzare altro codice.

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

Metodi che usano un campo nella mappa del codice dello stack di chiamate

Trovare bug usando la mappa

La visualizzazione del codice consente di trovare i bug più velocemente. Si supponga, ad esempio, di analizzare un bug in un'app di disegno. Quando si disegna una linea e si tenta di annullarlo, non succede nulla finché non si disegna un'altra linea.

È quindi possibile impostare i punti di interruzione nei clearmetodi , undoe Repaint , avviare il debug e compilare una mappa simile alla seguente:

Aggiungere un altro stack di chiamate alla mappa del codice

Notate che tutti i gesti dell'utente sulla mappa chiamano Repaint, ad eccezione di undo. Questo potrebbe spiegare perché undo non funziona immediatamente.

Dopo aver corretto il bug e aver continuato a eseguire l'app, la mappa aggiunge la nuova chiamata da undo a Repaint:

Aggiungi la chiamata di un nuovo metodo allo stack di chiamate nella mappa del codice

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.

Condividere il mapping del codice dello stack di chiamate con altri utenti