Condividi tramite


Eseguire il debug dell'app registrando l'esecuzione del codice con IntelliTrace

Per ridurre il tempo richiesto per eseguire il debug dell'applicazione, registrare e tracciare la cronologia delle esecuzioni con IntelliTrace in Visual Studio Ultimate.Questo consente di individuare i bug più facilmente senza impostare molti punti di interruzione poiché IntelliTrace consente di:

  • Registrare eventi specifici che si sono verificati nell'applicazione.

    Ciò consente di esaminare il codice correlato, i dati visualizzati nella finestra Variabili locali durante gli eventi del debugger e le informazioni di chiamata di funzione, se si sceglie di raccoglierle.

  • Ridurre la necessità di riavviare l'applicazione per ricreare i bug o gli eventi.

  • Eseguire il debug degli errori difficili da riprodurre o che si verificano all'esterno di Visual Studio, ad esempio in produzione o in altri ambienti.

In questo esempio viene mostrato come la registrazione degli può aiutare a trovare un bug nel codice:

Solo eventi di IntelliTrace - flusso di alto livello

Funzionamento di IntelliTrace: Raccolta e analisi dei dati IntelliTrace in produzione per l'esecuzione del debug (video Channel 9).

Scegliere l'argomento con cui si desidera procedere

Eseguire il debug dell'applicazione con IntelliTrace in Visual Studio:

  • Mostrare gli eventi passati.

  • Mostrare le informazioni sulle chiamate con gli eventi passati.

  • Salvare la sessione di IntelliTrace.

  • Controllare i dati raccolti da IntelliTrace.

Raccogliere i dati IntelliTrace durante una sessione di test in Test Manager

Raccogliere i dati IntelliTrace dalle applicazioni in esecuzione all'esterno di Visual Studio

Avviare il debug da un file di log IntelliTrace (file .iTrace).

domande frequenti

  • Di quali applicazioni è possibile eseguire il debug con IntelliTrace?

  • Perché eseguire il debug con IntelliTrace?

  • Quali dati raccoglie IntelliTrace?

  • IntelliTrace rallenterà l'applicazione?

Di quali applicazioni è possibile eseguire il debug con IntelliTrace?

Supportato

Supporto limitato

  • Applicazioni F# su base sperimentale

  • Applicazioni Windows Store supportate solo per gli eventi

Non supportato

  • C++, altri linguaggi e script

  • Silverlight, Xbox o applicazioni Windows Mobile

[!NOTA]

Se si desidera eseguire il debug di un processo già in esecuzione, non è possibile utilizzare IntelliTrace.È necessario avviare IntelliTrace all'avvio del processo.

Perché eseguire il debug con IntelliTrace?

Il debug tradizionale o attivo mostra solo lo stato corrente dell'applicazione con dati limitati sugli eventi passati.È necessario dedurre tali eventi dallo stato corrente dell'applicazione oppure ricrearli rieseguendo l'applicazione.

IntelliTrace consente di espandere questa esperienza di debug tradizionale registrando dati ed eventi specifici in un dato momento.Ciò consente di vedere che cosa è accaduto nell'applicazione senza riavviarla, specialmente se si supera il punto in cui si è verificato il bug.IntelliTrace è attivato per impostazione predefinita durante il debug tradizionale e raccoglie i dati in modo automatico e invisibile.Ciò consente di passare facilmente dal debug tradizionale a quello IntelliTrace e viceversa per visualizzare le informazioni registrate.Vedere Registrare l'esecuzione del codice con IntelliTrace per il debug in Visual Studio and Quali dati raccoglie IntelliTrace?

IntelliTrace consente anche di eseguire il debug di errori difficili da riprodurre o che si verificano all'esterno di Visual Studio.È possibile raccogliere dati IntelliTrace e salvarli in un file di log IntelliTrace (file .iTrace),contenente dettagli su eccezioni, thread, richieste Web, dati di test, moduli e altre informazioni di sistema.È possibile aprire questo file in Visual Studio Ultimate, selezionare un elemento e avviare il debug con IntelliTrace.Ciò consente di passare a qualsiasi evento nel file e visualizzare dettagli specifici sull'applicazione in un dato momento.

È possibile salvare i dati IntelliTrace dalle seguenti origini:

  • Sessione di IntelliTrace in Visual Studio Ultimate

  • Sessione di test in Microsoft Test Manager

  • Applicazioni in esecuzione all'esterno di Visual Studio, ad esempio negli ambienti di produzione o in altri ambienti

  • Visual Studio 2012.1: Applicazioni monitorate da System Center 2012 Service Pack 1 (SP1) - Operations Manager con il Profiling Management Pack di IntelliTrace.Vedere la pagina relativa a come configurare l'integrazione con IntelliTrace in System Center 2012.

Vedere Eseguire il debug dell'app con file di log di IntelliTrace (.iTrace).

Di seguito sono riportati alcuni esempi sul modo in cui IntelliTrace semplifica le operazioni di debug:

  • L'applicazione ha danneggiato un file di dati, ma non si sa dove si è verificato l'evento.

    Senza IntelliTrace, sarebbe necessario esaminare il codice per trovare tutti gli accessi possibili al file, inserire punti di interruzione in corrispondenza di tali accessi e quindi rieseguire l'applicazione per individuare dove si è verificato il problema.Con IntelliTrace è possibile vedere tutti gli eventi di accesso ai file raccolti e dettagli specifici sull'applicazione nel momento in cui si è verificato ciascun evento.

  • Si verifica un'eccezione.

    Senza IntelliTrace si ottiene un messaggio su un'eccezione ma non si dispone di molte informazioni sugli eventi che ne hanno causato la comparsa.È possibile esaminare lo stack di chiamate per individuare la catena di chiamate che ha generato l'eccezione, ma non si può vedere la sequenza di eventi che si sono verificati durante tali chiamate.Con IntelliTrace è possibile esaminare gli eventi che si sono verificati prima dell'eccezione.

  • L'applicazione si arresta in modo anomalo su un computer utilizzato per i test, ma viene eseguita correttamente su un computer di sviluppo.

    È possibile raccogliere dati IntelliTrace da Microsoft Test Manager, salvare i dati in un file .iTrace e allegarlo a un elemento di lavoro di Team Foundation Server per analizzarlo in un secondo momento.Vedere Inclusione di dati di traccia di diagnostica nei bug difficili da riprodurre e Eseguire il debug dell'app con file di log di IntelliTrace (.iTrace).

  • Viene rilevato un bug o si verifica un arresto anomalo nell'applicazione eseguita all'esterno di Visual Studio.

    Per le applicazioni basate su Windows Azure, è possibile configurare la raccolta di dati di IntelliTrace prima di pubblicarle.Quando l'applicazione viene eseguita, IntelliTrace consente di salvare i dati in un file .iTrace.Vedere la pagina relativa al debug di un servizio cloud pubblicato con IntelliTrace e Visual Studio.

    Per le applicazioni (.exe) desktop gestite, per le applicazioni Web ASP.NET ospitate in IIS 7.0, 7.5 e 8.0 e per le applicazioni SharePoint 2010, è possibile utilizzare l'agente di raccolta autonomo per salvare i dati di IntelliTrace in un file .iTrace.

    Ciò risulta utile per diagnosticare problemi con le applicazioni in esecuzione in cui non si desidera modificare la configurazione di sistema, ad esempio un ambiente di produzione.È possibile installare l'agente di raccolta senza modificare la configurazione del sistema.Una volta completa la raccolta dei dati, è sufficiente eliminarlo per disinstallarlo.Vedere Raccogliere dati di IntelliTrace all'esterno di Visual Studio con lo strumento di raccolta indipendente.

Quali dati raccoglie IntelliTrace?

Raccolta delle informazioni sugli eventi

Per impostazione predefinita, IntelliTrace registra solo gli eventi IntelliTrace.Si tratta di eventi del debugger, eccezioni, eventi di .NET Framework e altri eventi di sistema utili per il debug.È possibile scegliere i tipi di eventi IntelliTrace che si desidera raccogliere, tranne gli eventi del debugger e le eccezioni, che vengono sempre raccolti.Vedere Configurare la raccolta di IntelliTrace per il debug in Visual Studio.

  • Eventi del debugger

    IntelliTrace registra sempre gli eventi che si verificano nel debugger di Visual Studio.Ad esempio, l'avvio dell'applicazione è un evento del debugger.Altri eventi del debugger sono gli eventi di arresto, ossia quelli che interrompono l'esecuzione dell'applicazione,ad esempio il rilevamento di un punto di interruzione, il rilevamento di un punto di analisi o l'esecuzione di un comando Passaggio.

    Per motivi di prestazioni, IntelliTrace non registra tutti i valori possibili per un evento del debugger.I valori registrati sono i seguenti:

    • Valori nella finestra Variabili locali.Per visualizzarli, mantenere aperta la finestra Variabili locali.

    • Valori nella finestra Auto solo se tale finestra è aperta

    • Valori nei suggerimenti dati mostrati quando si sposta il puntatore del mouse su una variabile nella finestra di origine per visualizzarne il valore.IntelliTrace non raccoglie i valori nei suggerimenti dati bloccati.

  • Eccezioni

    IntelliTrace registra il tipo di eccezione e il messaggio per questi tipi di eccezione:

    • Eccezioni gestite in cui l'eccezione viene generata e intercettata

    • Eccezioni non gestite

  • eventi .NET Framework

    Per impostazione predefinita, IntelliTrace registra gli eventi.NET Framework più comuni.Ad esempio:

    • Per un evento Accesso ai file, IntelliTrace raccoglie il nome del file.

    • Per un evento Verifica casella di controllo, raccoglie lo stato e il testo della casella di controllo.

  • Visual Studio 2012.1: Eventi di applicazioni SharePoint 2010

    Per le applicazioni SharePoint 2010 in esecuzione all'esterno di Visual Studio, è possibile registrare e salvare gli eventi specifici di SharePoint in un file .iTrace utilizzando l'agente di raccolta autonomo in Visual Studio 2012.1.

    Quando si apre il file .iTrace, è possibile immettere un ID di correlazione di SharePoint per trovare la richiesta web corrispondente, per visualizzare gli eventi registrati e per iniziare il debug da un evento specifico.Se il file contiene eccezioni non gestite, è possibile scegliere un ID di correlazione per avviare il debug di un'eccezione.È possibile registrare gli eventi di un profilo utente e un sottoinsieme degli eventi del sistema di registrazione unificato (ULS).

    Vedere:

Raccolta delle informazioni sulle chiamate di funzione

È possibile configurare IntelliTrace per la raccolta delle informazioni sulle chiamate per le funzioni.Tali informazioni consentono di visualizzare la cronologia dello stack di chiamate e di scorrere in avanti e indietro le chiamate nel codice.Per ogni chiamata di funzione, IntelliTrace registra i seguenti dati:

  • Nome funzione

  • Valori dei tipi di dati primitivi passati come parametri nei punti di ingresso di una funzione e restituiti nei punti di uscita di una funzione

  • Valori delle proprietà automatiche quando vengono letti o modificati

  • Puntatori agli oggetti figlio di primo livello, ma non i relativi valori diversi da quelli che indicano se lo stato è null oppure no

[!NOTA]

IntelliTrace raccoglie solo i primi 256 oggetti in matrici e i primi 256 caratteri per le stringhe.

Vedere Configurare la raccolta di IntelliTrace per il debug in Visual Studio.

Raccolta delle informazioni sui moduli

Per controllare la quantità di informazioni sulle chiamate che IntelliTrace raccoglie, specificare solo i moduli di interesse.In questo modo è possibile migliorare le prestazioni dell'applicazione durante la raccolta.Vedere Configurare la raccolta di IntelliTrace per il debug in Visual Studio.

IntelliTrace rallenterà l'applicazione?

Per impostazione predefinita, vengono raccolti dati solo per eventi di IntelliTrace selezionati.Ciò può rallentare l'applicazione oppure no, in base alla struttura e all'organizzazione del codice.Ad esempio, se IntelliTrace registra un evento spesso, questo potrebbe rallentare l'applicazione, ma potrebbe anche spingere a eseguire il refactoring dell'applicazione.

La raccolta di informazioni sulle chiamate potrebbe rallentare significativamente l'applicazione.Potrebbe anche aumentare la dimensione di ogni file di log IntelliTrace (file .iTrace) che si sta salvando sul disco.Per ridurre al minimo questi effetti, raccogliere le informazioni sulle chiamate solo per i moduli che interessano.Per cambiare la dimensione massima dei file .iTrace, andare a Strumenti, Opzioni, IntelliTrace, Avanzate.Vedere Configurare la raccolta di IntelliTrace per il debug in Visual Studio.

Dove è possibile ottenere ulteriori informazioni?

Registrare l'esecuzione del codice con IntelliTrace per il debug in Visual Studio

Configurare la raccolta di IntelliTrace per il debug in Visual Studio

Inclusione di dati di traccia di diagnostica nei bug difficili da riprodurre

Raccogliere dati di IntelliTrace all'esterno di Visual Studio con lo strumento di raccolta indipendente

Eseguire il debug dell'app con file di log di IntelliTrace (.iTrace)

Dd264915.collapse_all(it-it,VS.110).gifBlog

Visual Studio ALM + Team Foundation Server

Dd264915.collapse_all(it-it,VS.110).gifForum

Pagina relativa al debugger di Visual Studio

Dd264915.collapse_all(it-it,VS.110).gifLinee guida

Pagina relativa ai test per la consegna continua con Visual Studio 2012 - Capitolo 6: Una casella degli strumenti di test

Dd264915.collapse_all(it-it,VS.110).gifVideo

Channel 9: Raccolta e analisi dei dati IntelliTrace in produzione