Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
È possibile dedicare meno tempo al debug dell'applicazione quando si usa IntelliTrace per registrare e tracciare la cronologia di esecuzione del codice. È possibile trovare facilmente bug perché IntelliTrace consente di:
Registrare eventi specifici
Esaminare il codice correlato, i dati visualizzati nella finestra Variabili locali durante gli eventi del debugger e le informazioni sulle chiamate di funzione
Errori di debug difficili da riprodurre o che si verificano nella distribuzione
È possibile usare IntelliTrace in Visual Studio Enterprise Edition (ma non nelle edizioni Professional o Community).
Cosa vuoi fare?
Sceneggiatura | Titolo |
---|---|
Eseguire il debug dell'applicazione con IntelliTrace: - Mostra eventi precedenti. - Mostra le informazioni sulle chiamate con gli eventi passati. - Salvare la sessione IntelliTrace. - Controllare i dati raccolti da IntelliTrace. |
-
Esaminare gli stati dell'app precedenti usando IntelliTrace - Procedura dettagliata: Uso di IntelliTrace - Funzionalità di IntelliTrace - Debug cronologico |
Raccogliere dati IntelliTrace dalle applicazioni distribuite | - Uso dell'agente di raccolta autonomo IntelliTrace |
Avviare il debug da un file di log IntelliTrace (file con estensione iTrace). | - Uso dei dati IntelliTrace salvati |
Quali app è possibile eseguire il debug con IntelliTrace?
Livello di supporto | Tipi di applicazione |
---|---|
Supporto completo | - Applicazioni Visual Basic e Visual C# che usano .NET Framework 2.0 o versioni successive. È possibile eseguire il debug della maggior parte delle applicazioni, tra cui ASP.NET, Microsoft Azure, Windows Forms, WCF, WPF, Flusso di lavoro di Windows, SharePoint 2010, SharePoint 2013 e app a 64 bit. Per eseguire il debug di applicazioni SharePoint con IntelliTrace, vedere Procedura dettagliata: Debug di un'applicazione SharePoint tramite IntelliTrace. Per eseguire il debug di app di Microsoft Azure con IntelliTrace, vedere Debug di un servizio cloud pubblicato con IntelliTrace e Visual Studio. |
Supporto limitato | - Le app C++ destinate a Windows supportano la visualizzazione degli snapshot tramite il passaggio indietro di IntelliTrace. Sono supportati solo gli eventi del debugger e delle eccezioni. - App .NET Core e ASP.NET Core supportate solo per determinati eventi (controller MVC, ADO.NET e eventi HTTPClient) nel debug locale. L'agente di raccolta autonomo non è supportato per le app .NET Core o ASP.NET Core. - App F# su base sperimentale - App UWP supportate solo per gli eventi |
Non supportato | - Altri linguaggi e script - Servizi Windows, Silverlight, Xbox o app di Windows Mobile |
Annotazioni
Se si vuole eseguire il debug di un processo già in esecuzione, è possibile raccogliere solo gli eventi IntelliTrace (nessuna informazione di chiamata). È possibile collegarsi a un processo a 32 bit o a 64 bit solo nel computer locale. Gli eventi che si verificano prima del collegamento al processo non vengono raccolti.
Perché eseguire il debug con IntelliTrace?
Il debug tradizionale o live mostra solo lo stato corrente dell'applicazione, con dati limitati sugli eventi precedenti. È necessario dedurre questi eventi in base allo stato corrente dell'applicazione oppure ricreare questi eventi eseguendo di nuovo l'applicazione.
IntelliTrace espande questa tradizionale esperienza di debug registrando eventi e dati specifici in questi momenti. In questo modo è possibile vedere cosa è successo nell'applicazione senza riavviarlo, soprattutto se si passa oltre dove si trova il bug. IntelliTrace è attivato per impostazione predefinita durante il debug tradizionale e raccoglie i dati automaticamente e invisibilmente. In questo modo è possibile passare facilmente tra il debug tradizionale e il debug IntelliTrace per visualizzare le informazioni registrate. Vedere Funzionalità di IntelliTrace e Quali dati vengono raccolti da IntelliTrace?
IntelliTrace consente anche di eseguire il debug di errori difficili da riprodurre o che si verificano nella distribuzione. È possibile raccogliere dati IntelliTrace e salvarli in un file di log IntelliTrace (file con estensione iTrace). Un file con estensione iTrace contiene informazioni dettagliate su eccezioni, eventi di prestazioni, richieste Web, dati di test, thread, moduli e altre informazioni di sistema. È possibile aprire questo file in Visual Studio Enterprise, selezionare un elemento e avviare il debug con IntelliTrace. In questo modo è possibile passare a qualsiasi evento nel file e visualizzare dettagli specifici sull'applicazione in quel momento.
È possibile salvare i dati di IntelliTrace da queste origini:
Una sessione IntelliTrace in Visual Studio 2015 Enterprise o versioni successive o versioni precedenti di Visual Studio Ultimate.
ASP.NET app Web ospitate in IIS o applicazioni SharePoint in esecuzione nella distribuzione quando si usa Microsoft Monitoring Agent, da solo o con System Center 2012. Consultare Usare il raccoglitore autonomo di IntelliTrace e Monitoraggio con Microsoft Monitoring Agent.
Importante
L'uso di Microsoft Monitoring Agent (MMA) con IntelliTrace non è più supportato quando Microsoft Monitoring Agent raggiunge la fine della vita il 31 agosto 2024. Per altre informazioni, vedere Eseguire la migrazione all'agente di Monitoraggio di Azure dall'agente di Log Analytics.
Ecco alcuni esempi di come IntelliTrace consente di eseguire il debug:
L'applicazione ha danneggiato un file di dati, ma non si sa dove si è verificato questo evento.
Senza IntelliTrace, è necessario esaminare il codice per trovare tutti i possibili accessi ai file, inserire punti di interruzione su tali accessi ed eseguire di nuovo l'applicazione per individuare dove si è verificato il problema. Con IntelliTrace è possibile visualizzare tutti gli eventi di accesso ai file raccolti e dettagli specifici sull'applicazione quando si è verificato ogni evento.
Si verifica un'eccezione.
Senza IntelliTrace, viene visualizzato un messaggio relativo a un'eccezione, ma non si dispone di molte informazioni sugli eventi che hanno causato l'eccezione. È possibile esaminare lo stack di chiamate per visualizzare la catena di chiamate che hanno portato all'eccezione, ma non è possibile visualizzare la sequenza di eventi che si sono verificati durante tali chiamate. Con IntelliTrace è possibile esaminare gli eventi che si sono verificati prima dell'eccezione.
Si verifica un bug o un arresto anomalo in un'applicazione distribuita.
Per le app basate su Microsoft Azure, è possibile configurare la raccolta dati IntelliTrace prima di pubblicare l'applicazione. Durante l'esecuzione dell'applicazione, IntelliTrace salva i dati in un file con estensione iTrace. Vedere Eseguire il debug di un servizio cloud pubblicato con IntelliTrace e Visual Studio.
Per ASP.NET app Web ospitate in applicazioni IIS 7.0, 7.5 e 8.0 e SharePoint 2010 o SharePoint 2013, usare Microsoft Monitoring Agent, da solo o con System Center 2012, per salvare i dati IntelliTrace in un file con estensione iTrace.
Ciò è utile quando si vogliono diagnosticare i problemi relativi alle app nella distribuzione. Vedere Usare l'agente di raccolta autonomo IntelliTrace.
Quali dati vengono raccolti da IntelliTrace?
Raccogliere informazioni sugli eventi
Per impostazione predefinita, IntelliTrace registra solo gli eventi IntelliTrace: eventi del debugger, eccezioni, eventi di .NET Framework e altri eventi di sistema che consentono di eseguire il debug. È possibile scegliere i tipi di eventi IntelliTrace che si desidera raccogliere, ad eccezione degli eventi e delle eccezioni del debugger, che vengono sempre raccolti. Vedere Funzionalità di IntelliTrace.
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 eventi di arresto, che causano l'interruzione dell'esecuzione dell'applicazione. Ad esempio, il programma raggiunge un punto di interruzione, raggiunge un punto di traccia o esegue un comando Step .
Per impostazione predefinita, per migliorare le prestazioni, IntelliTrace non registra ogni valore possibile per un evento del debugger. Registra invece questi valori:
Valori nella finestra Variabili locali . Mantenere aperta la finestra Variabili locali per visualizzare questi valori.
Valori nella finestra Autos solo se la finestra Autos è aperta
Valori nei suggerimenti dati visualizzati quando si sposta il puntatore del mouse sopra una variabile nella finestra di origine per visualizzarne il valore. IntelliTrace non raccoglie i valori nei suggerimenti dati aggiunti.
Quando la modalità Eventi e snapshot di IntelliTrace è abilitata, IntelliTrace creerà uno snapshot del processo dell'applicazione in ogni punto di interruzione e evento Step del debugger. Verranno registrati i valori nelle finestre Variabili locali, Auto e Espressioni di controllo , indipendentemente dal fatto che le finestre siano aperte o meno. Verranno raccolti anche i valori in tutti i suggerimenti per i dati aggiunti.
Eccezioni
IntelliTrace registra il tipo di eccezione e il messaggio per questi tipi di eccezioni:
Eccezioni gestite in cui viene generata e intercettata l'eccezione
Eccezioni non gestite
Eventi di .NET Framework
Per impostazione predefinita, IntelliTrace registra gli eventi .NET Framework più comuni. Ad esempio, per un CheckBox.CheckedChanged evento, IntelliTrace raccoglie lo stato e il testo della casella di controllo.
Eventi dell'applicazione SharePoint 2010 e SharePoint 2013
È possibile registrare eventi del profilo utente e un subset di eventi ULS (Unified Logging System) per le applicazioni SharePoint 2010 e 2013 in esecuzione all'esterno di Visual Studio. È possibile salvare questi eventi in un file con estensione iTrace. Richiede Visual Studio Enterprise 2015 o versioni successive, una versione precedente di Visual Studio Ultimate o Microsoft Monitoring Agent in esecuzione in modalità di traccia .
Quando si apre il file con estensione iTrace, immettere un ID di correlazione di SharePoint per trovare la richiesta Web corrispondente, visualizzare gli eventi registrati e avviare 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.
Vedere:
Acquisire snapshot
È possibile configurare IntelliTrace per acquisire snapshot in ogni punto di interruzione e evento del passaggio del debugger. IntelliTrace registra lo stato completo dell'applicazione in ogni snapshot, che consente di visualizzare variabili complesse e di valutare le espressioni.
Annotazioni
L'agente di raccolta autonomo IntelliTrace non supporta l'acquisizione di snapshot.
Vedi Esaminare gli stati dell'app precedenti usando IntelliTrace.
Raccogliere informazioni sulle chiamate di funzione
È possibile configurare IntelliTrace per raccogliere informazioni sulle chiamate per le funzioni. Queste informazioni consentono di visualizzare una cronologia dello stack di chiamate e di eseguire passaggi indietro e avanti tramite chiamate nel codice. Per ogni chiamata di funzione, IntelliTrace registra questi dati:
- Nome della funzione
- Valori dei tipi di dati primitivi passati come parametri nei punti di ingresso della funzione e restituiti nei punti di uscita della funzione
- Valori delle proprietà automatiche quando vengono lette o modificate
- Puntatori agli oggetti figlio di primo livello, ma non ai loro valori, tranne che per indicare se fossero nulli o meno
Annotazioni
IntelliTrace raccoglie solo i primi 256 oggetti nelle matrici e i primi 256 caratteri per le stringhe.
Vedi Esaminare l'app con il debug cronologico.
Raccogliere informazioni sul modulo
Per controllare la quantità di informazioni sulle chiamate raccolte da IntelliTrace, specificare solo i moduli di cui si è interessati. Ciò consente di migliorare le prestazioni dell'applicazione durante la raccolta. Vedere la sezione Controllare la quantità di informazioni raccolte in IntelliTrace nelle funzionalità di IntelliTrace.
IntelliTrace rallenta l'applicazione?
Per impostazione predefinita, IntelliTrace raccoglie i dati solo per gli eventi IntelliTrace selezionati. Questo potrebbe o non rallentare l'applicazione, a seconda della struttura e dell'organizzazione del codice. Ad esempio, se IntelliTrace registra spesso un evento, questo potrebbe rallentare l'applicazione. Potrebbe anche essere utile prendere in considerazione il refactoring dell'applicazione.
La raccolta di informazioni sulle chiamate potrebbe rallentare significativamente l'applicazione. Potrebbe anche aumentare le dimensioni di qualsiasi file di log IntelliTrace (file con estensione iTrace) che si sta salvando su disco. Per ridurre al minimo questi effetti, raccogliere informazioni sulle chiamate solo per i moduli di cui si è a cuore. Per modificare le dimensioni massime dei file con estensione iTrace, passare a Strumenti, Opzioni, IntelliTrace, Avanzate.