Visual Studio ALM … stepping through Brian’s HOLs (Part 5) – Debugging “IntelliTrace”

Continued from Visual Studio ALM … stepping through Brian’s HOLs (Part 4) – Branch Visualization, giving us the following bread crumbs to date:

Define Business Requirements > Project Planning > Code Discovery > Code Discovery > Class Coupling > Branch Visualization … today’s menu includes branch visualization.

Looking at the bread crumbs we have stepped through the requirements management, the planning, exploring existing code and getting a grip on our version control environment. This means we can start peeling another layer off the onion, going one level deeper and debugging the code. The typical debugging environment is us stepping through the codebase … but what if the user reports an error? How can we reproduce the exact environment, or explore the exact state at the time of the problem? Welcome IntelliTrace … refer to https://msdn.microsoft.com/en-us/library/dd264915.aspx for more information.

This is one of the sections that lightens up one of the really cool and productive new features in Visual Studio 2010, a feature I would have loved in the C++ environment I am using for my final studies at UNISA (UNISA – Summary of 2010 posts).

Focus Area Reference Material Suggested steps for the quick reference poster
IntelliTrace

Configuring IntelliTrace

  • In Visual Studio, select Tools | Options.
  • Select the node IntelliTrace
  • Ensure that IntelliTrace is enabled
    • Default mode is to record events only to guarantee best performance
    • IntelliTrace information is dropped in a file with extension .iTrace.
  • The default view is:
    1. Display sequential list of events collected during the debug session
    2. The event categories that are collected can be configured in Tools | Options | IntelliTrace | IntelliTrace Events
    3. Note that we can also narrow down the list using the search:

Exploring IntelliTrace with Call Information

  • The default view can be changed to include call information.
    1. Change to “IntelliTrace events and call information”
    2. Optionally change the advanced settings, such as maximum trace file size and location.
  • We can select the Call View link in the event we are interested in … … which changes the view to call information:
  • We can select calls and drill down on the code
  • Looking more closely at the code …
    1. We can step through the code … remember that we are debugging history … “cool”!
    2. We can watch locals and variables while stepping through history … “way cool”!

Again this is a feature you have to explore, because debugging back before time does not come naturally to most of us.

A real nugget is the fact that these IntelliTrace sessions and associated log files can be saved and reused later for analysis debugging. The bug work item suddenly has a wealth of potential attachments to add context to issues and assist the test and development teams to investigate.

In part 6 and probably the last post in this series, we will look at Testing as covered in Brian Keller’s HOLs.

| Acronyms | HOL - Hands-On-Lab | RI – Reverse Integration (merge) | TFS – Team Foundation Server |