What can you do with ‘IntelliTrace’ in Visual Studio 2010

(Note: This blog post was originally published under my old domain(codesmiles.com), here. Web Archive link. (This post is part of my Visual Studio 2010 series) As I wrote in my earlier article, Visual Studio 2010 has many new features in debugging. IntelliTrace is one of the major features of Visual Studio 2010 and as of now it is available only in Visual Studio 2010 Ultimate edition. In my opinion, IntelliTrace is the best reason to convince your boss to get Ultimate edition for you :). Note, IntelliTrace only supports managed code, for example, it doesn’t support vc++ native code. [more] This article introduces IntelliTrace and tells how it helps in simplifying debugging and tells some more things that can be done with it (based on Visual Studio 2010 ultimate edition-release candidate). (I am taking the intro from previous post..) Introducing Visual Studio 2010’s IntelliTrace.. IntelliTrace is a feature previously known as Historical debugging, which is a major enhancement made to the Visual Studio 2010 debugger. When an exception occurs, you usually start debugging with breakpoints set in suspected areas and check variable/object values for correctness. But if an exception occurs when IntelliTrace is enabled, it allows you to just go

The (not much utilized) Debug->Exceptions… window technique

(Note: This blog post was originally published under my old domain(codesmiles.com), here. Web Archive link. The Debug-Exceptions… window is a useful tool that at times saves lot of time when debugging. Even though this exists (i think)from Visual Studio 2003, I Still find people struggle a bit with the situation I am going to explain next.[more] As you know Visual Studio highlights the exception code line when it is not handled. Sometimes we purposely don’t handle exceptions in a method and let the exception thrown to calling functions.   Usually we have a multi-project solution that typically has layers like Business logic, Data access layer, UI, etc. Imagine that you make a call from the UI to a local function and it calls another function in BLL and the call goes deep into layers of your project architecture. Now, when it is not sure if each of the methods getting called handles exceptions in it or doesn’t throw identifiable exceptions. For instance.. private void Function_A() {     try     {         BLLFunction();//this calls few other functions..     }     catch (Exception ex)     {         //handle exception     } } Function_A() calls BLLFunction() and it again calls few other functions,