Condividi tramite


Debug con IntelliTrace

Questo argomento è valido solo per Visual Studio 2010 Ultimate.

L'esecuzione del debug con IntelliTrace, disponibile in Microsoft Visual Studio 2010 Ultimate, fornisce un'immagine migliorata dell'applicazione rispetto ai debugger tradizionali. I debugger tradizionali consentono di visualizzare lo stato dell'applicazione nella sessione corrente con informazioni limitate sugli eventi che si sono verificati precedentemente. È necessario dedurre gli eventi che si sono verificati precedentemente, in base allo stato dell'applicazione nella sessione corrente, o riavviare l'applicazione per ricreare eventi passati. Con IntelliTrace è possibile visualizzare effettivamente eventi che si sono verificati in passato e il contesto nel quale si sono verificati. In questo modo si riduce il numero di riavvii richiesto per eseguire debug dell'applicazione e la possibilità che un errore non venga riprodotto quando si riesegue l'applicazione.

IntelliTrace estende e migliora la consueta esperienza di debug attivo di Visual Studio. È comunque sempre possibile accedere a tutte le familiari funzionalità del debugger di Visual Studio. IntelliTrace funziona in background, registrando informazioni di debug. Quando si desidera analizzare di nuovo uno stato precedente dell'applicazione, è possibile attivare la modalità IntelliTrace. Con questa modalità è possibile passare ai vari punti in cui sono stati registrati eventi di interesse.

È inoltre possibile caricare ed eseguire il debug di un file di IntelliTrace con estensione iTrace. I file di IntelliTrace creati da IntelliTrace o Test Manager consentono di eseguire il debug post-arresto anomalo del sistema sfruttando tutta la potenzialità di IntelliTrace.

Quando si utilizzano le impostazioni predefinite, IntelliTrace avrà un impatto minimo sulle prestazioni dell'applicazione. IntelliTrace è pertanto attivato per impostazione predefinita. Anche se non è stato pianificato l'utilizzo IntelliTrace all'avvio della la sessione di debug, le informazioni di IntelliTrace vengono raccolte automaticamente e sono quindi disponibili quando sono necessarie.

Debug di codice più veloce

IntelliTrace consente di risparmiare tempo abbreviando il ciclo di debug. Si supponga ad esempio di eseguire il debug di un'applicazione che legge un valore del Registro di sistema durante l'inizializzazione, ma la chiave del Registro di sistema non esista. L'effetto di tale problema potrebbe non risultare evidente, se non quando verrà eseguita l'applicazione. Sarà quindi necessario determinare perché il valore del Registro di sistema non è stato letto. L'approccio consiste in genere nel riavviare l'applicazione e inserire un punto di interruzione in prossimità dell'accesso di Registro di sistema. La riesecuzione dell'applicazione richiede tempo. Con IntelliTrace è possibile evitare molti di questi riavvii. Anziché rieseguire l'applicazione, è possibile avviare il debug con IntelliTrace che consente di analizzare di nuovo ogni accesso al Registro di sistema, scegliere quello che interessa ed esaminare lo stato dell'applicazione quando si è verificato tale accesso al Registro di sistema. È possibile ottenere risparmi di tempo simili quando si esegue debug di altri problemi, quale un'eccezione o un errore di accesso ai file. Per ulteriori informazioni, vedere Debug di codice più veloce con IntelliTrace.

Debug di errori non riproducibili

IntelliTrace consente di eseguire il debug di errori e arresti anomali del sistema che diversamente non sarebbero riproducibili. È possibile eseguire il debug di file di log creati da IntelliTrace o da Test Manager. Un tester può connettere direttamente un file di log da Test Manager a un elemento di lavoro o un bug di Team Foundation Server che può essere assegnato a un sviluppatore. In questo modo, IntelliTrace e Test Manager si integrano nel flusso di lavoro del team.

Quando si esegue il debug di un file di IntelliTrace, il processo è simile al debug di un file dump. Tuttavia, i file di IntelliTrace forniscono molte più informazioni rispetto ai file dump tradizionali. Un file dump fornisce uno snapshot dello stato di un'applicazione in un determinato momento, generalmente quando si è verificato un arresto anomalo. Con IntelliTrace è possibile risalire la cronologia per visualizzare lo stato dell'applicazione e gli eventi che si sono verificati precedentemente nell'esecuzione dell'applicazione. In questo modo il debug da un file di log risulta più facile e veloce rispetto al debug da un file dump.

Per ulteriori informazioni, vedere Debug di errori non riproducibili con IntelliTrace.

Applicazioni supportate e scenari di debug

IntelliTrace supporta il debug di applicazioni di Visual Basic e C# che utilizzano .NET versione 2.0, 3.0, 3.5 o 4. È possibile eseguire il debug della maggior parte delle applicazioni, incluse quelle create tramite ASP.NET, Windows Form, WPF, Windows Workflow e WCF. IntelliTrace non supporta il debug di C++, script o altri linguaggi. Il debug di applicazioni F# è supportato su una base sperimentale.

Con IntelliTrace è possibile eseguire il debug di applicazioni avviata da Visual Studio e di file di IntelliTrace creati da IntelliTrace o Test Manager. Non è possibile utilizzare IntelliTrace con applicazioni avviate all'esterno di Visual Studio e sottoposte a debug tramite il comando Connetti a. IntelliTrace non supporta il debug remoto di applicazioni in esecuzione su altri computer.

IntelliTrace supporta il debug post-arresto anomalo del sistema di applicazioni di SharePoint e applicazioni a 64 bit tramite file di log di debug di traccia creati da Test Manager. Non supporta il debug di applicazioni di SharePoint o applicazioni di 64 bit avviate da Visual Studio.

IntelliTrace non supporta il debug di applicazioni di Silverlight, Xbox o Windows Mobile.

Livelli di raccolta

Quando IntelliTrace è abilitato, le informazioni vengono raccolte automaticamente durante ogni sessione di debug. Tali informazioni di IntelliTrace consentono di passare dal debug attivo al debug con IntelliTrace quando necessario. Il tipo di informazioni raccolto è determinato da opzioni impostate al livello di Visual Studio. Queste opzioni di raccolta si applicano a tutti i progetti e tutte le soluzioni. Tali opzioni sono persistenti tra le sessioni di debug e quelle di Visual Studio.

Per impostazione predefinita, tramite IntelliTrace vengono raccolte informazioni solo per eventi di IntelliTrace selezionati. Come già indicato, la raccolta che queste informazioni predefinite ha un un impatto minimo sulle prestazioni dell'applicazione.

Per migliorare ulteriormente le prestazioni del debug, è possibile scegliere di raccogliere un record di chiamate, insieme ai relativi parametri e valori restituiti, oltre agli eventi di IntelliTrace. Questo miglioramento delle prestazioni del debug ha tuttavia un impatto sulle prestazioni. Per ulteriori informazioni sugli eventi di diagnostica e sulle opzioni di raccolta, vedere Raccolta di informazioni di IntelliTrace.

Vedere anche

Concetti

Esecuzione delle attività di sviluppo comuni

Altre risorse

Riferimento API per l'estensibilità di IntelliTrace