IntelliTrace - Visual Studio 2015 (original) (raw)


Share via


Note

This article applies to Visual Studio 2015. If you're looking for the latest Visual Studio documentation, see Visual Studio documentation. We recommend upgrading to the latest version of Visual Studio. Download it here

The latest version of this topic can be found at IntelliTrace .

You can spend less time debugging your application when you use IntelliTrace to record and trace your code's execution history. You can find bugs easily because IntelliTrace lets you:

What do you want to do?

Scenario Articles
Debug my application with IntelliTrace: - Show me past events.- Show me call information with past events.- Save my IntelliTrace session.- Control the data that IntelliTrace collects. - Walkthrough: Using IntelliTrace IntelliTrace Features- Configure IntelliTrace- Historical Debugging
Collect IntelliTrace data during a test session in Test Manager - Collect more diagnostic data in manual tests
Collect IntelliTrace data from deployed applications - Using the IntelliTrace stand-alone collector
Start debugging from an IntelliTrace log file (.iTrace file). - Using saved IntelliTrace data

What apps can I debug with IntelliTrace?

Support level App types
Supported - Visual Basic and Visual C# applications that use .NET Framework 2.0 or higher versions. You can debug most applications, including ASP.NET, Microsoft Azure, Windows Forms, WCF, WPF, Windows Workflow, SharePoint 2010, SharePoint 2013, and 64-bit apps. To debug SharePoint applications with IntelliTrace, see Walkthrough: Debugging a SharePoint Application by Using IntelliTrace. To debug Microsoft Azure apps with IntelliTrace, see Debugging a Published Cloud Service with IntelliTrace and Visual Studio.
Limited support - F# apps on an experimental basis- Windows Store apps supported for events only
Not supported - C++, other languages, and script- Windows Services, Silverlight, Xbox, or Windows Mobile apps

Note

If you want to debug a process that is already running, you can’t use IntelliTrace. You must start IntelliTrace when the process starts.

Why debug with IntelliTrace?

Traditional or live debugging shows only your application's current state, with limited data about past events. You either have to infer these events based on the application's current state, or you have to recreate these events by rerunning your application.

IntelliTrace expands this traditional debugging experience by recording specific events and data at these points in time. This lets you see what happened in your application without restarting it, especially if you step past where the bug is. IntelliTrace is turned on by default during traditional debugging and collects data automatically and invisibly. This lets you switch easily between traditional debugging and IntelliTrace debugging to see the recorded information. See IntelliTrace Features and What data does IntelliTrace collect?

IntelliTrace can also help you debug errors that are hard to reproduce or that happen in deployment. You can collect IntelliTrace data and save it to an IntelliTrace log file (.iTrace file). An .iTrace file contains details about exceptions, performance events, Web requests, test data, threads, modules, and other system information. You can open this file in Visual Studio Enterprise, select an item, and start debugging with IntelliTrace. This lets you go to any event in the file and see specific details about your application at that point in time.

You can save IntelliTrace data from these sources:

What data does IntelliTrace collect?

Collecting event information

By default, IntelliTrace records only IntelliTrace events: debugger events, exceptions, .NET Framework events, and other system events that can help you with debugging. You can choose the kinds of IntelliTrace events that you want to collect, except for debugger events and exceptions, which are always collected. See Configure IntelliTrace.

Note

IntelliTrace collects only the first 256 objects in arrays and the first 256 characters for strings.

See Configure IntelliTrace.

Collecting module information

To control how much call information that IntelliTrace collects, specify only those modules that you care about. This can help improve your application's performance during collection. See Configure IntelliTrace.

Will IntelliTrace slow down my application?

By default, IntelliTrace collects data for selected IntelliTrace events only. This might or might not slow down your application, depending on the structure and organization of your code. For example, if IntelliTrace records an event often, this might slow down your application. It might also make you consider refactoring your application.

Collecting call information might slow down your application significantly. It might also increase the size of any IntelliTrace log files (.iTrace files) that you’re saving to disk. To minimize these effects, collect call information only for the modules you care about. To change the maximum size of your .iTrace files, go to Tools, Options, IntelliTrace, Advanced. See Configure IntelliTrace.

In this section

IntelliTrace Features

Configure IntelliTrace

Including Diagnostic Trace Data with Bugs that are Difficult to Reproduce

Diagnose problems after deployment

Using saved IntelliTrace data

Blogs

Visual Studio ALM + Team Foundation Server

Forums

Visual Studio Diagnostics