ASP.NET Internals : Visualizing ASP.NET Page Life Cycle using IntelliTrace

Understanding the ASP.NET Page Life Cycle is an essential knowledge for developing ASP.NET Web Application. When request come from client to server there are many operations performed in backend before sending response to the client. When client request for some information from a web server, request first reaches to HTTP.SYS, which is the kernel level of IIS. HTTP.SYS then send the request to respective  Application Pool. Application Pool then forward the request to worker process to load the ISAPI Extension which will create an HTTPRuntime Object to Process the request via HTTPModule and HTTPHanlder.  Once request passed through the HTPP Pipeline, ASP.NET Page Life Cycle Start.  You will find several articles that describes the What is ASP.NET Page lifecycle, what are the different events fired during page lifecycle.  This post is something different, I will show you how you can see the each and individual Page life cycle events using IntelliTrace

IntelliTrace Log ( .iTrace ) files and Visual Studio 2010 SP 1– Some Hidden Stuff

IntelliTrace debugging  is only available with Visual Studio 2010 Ultimate Edition, which collects debugging information in background and can be used at any point to time to analysis previous debugging data. IntelliTrace collected debugger information into a trace log file (.iTrace ) that can then be opened and debugged using Visual Studio later.  Size of .iTrace was always a concerns, as it’s take huge amount of your hard drive space and IntelliTrace is on by default. So whenever you are doing F5 debugging in Visual studio .iTrace is getting saved and it’s consuming your hard drive.

Well, before moving forward, I must thank to Larry Guger , Program Manager for IntelliTrace features .  Yesterday  I had a discussion with him on IntelliTrace .  During discussion I found there are several changes on IntelliTrace log saving which has been shifted with Visual Studio 2010 SP1. I have already blogged about few of them over here http://bit.ly/f8awhz. But few hidden stuff was missing which I got to know from Larry only.   In this post I am going  to discussed about those changes.

Collecting Module Specific Debugging Information using IntelliTrace

I am sure by this time all of you already aware of what is IntelliTrace Debugging. Just to give a quick overview, IntelliTrace is a new features of Visual Studio 2010 Ultimate Edition. By default IntelliTrace is enabled . During  debugging in Visual Studio, IntelliTrace works  in the background and  collect debugging information automatically and stored them in IntelliTrace Log File (. iTrace File ) . You can use the log file at any point of time to see what happened exactly at background during your live debugging. To know more details, you can see my several articles published on IntelliTrace  and for step by step guide read “Debugging Application using IntelliTrace” from MSDN .

Using IntelliTrace you can capture module specific information. This is really helpful when you don’t want to debug certain modules during your debugging process. In this post I am going to discuss about how you can collect module specific information using IntelliTrace.

New Features of IntelliTrace Debugging in Visual Studio 2010 – Service Pack 1 Beta

Visual Studio 2010 Service Pack 1 Beta having some great enhancement for IntelliTrace debugging. One of the most important features is debugging 64bit application with IntelliTrace  and also debug SharePoint projects using IntelliTrace. Apart from the above enhancement, there are some changes in saving of .iTrace Log files as well.  Earlier, by default, IntelliTrace  saves IntelliTrace log files (.iTrace files) to Trace debugging storage location and there was no option to enabled or disabled the log generation. But now, You can change the storage behavior of IntelliTrace log files, or you can manually save IntelliTrace log files from IntelliTrace Window. Here I am describing the procedures.

Debugging 64 bit application using IntelliTrace – Visual Studio 2010 Service Pack 1 Beta

IntelliTrace is an new features of Visual Studio 2010 Ultimate Edition. By default IntelliTrace is enabled . During  debugging in Visual Studio, IntelliTrace works  in the background and  collect debugging information automatically and stored them in IntelliTrace Log File (. iTrace File ) . You can use the log file at any point of time to see what happened exactly at background during your live debugging. One of most draw back of IntelliTrace was to support only 32bit Application. So, If you have are running your application in a 64bit Application, you have to debug your application in 32 bit mode to deal with IntelliTrace.  If you are trying to debug an 64 bit application using IntelliTrace you will get below  message in IntelliTrace Window.

image

Does IntelliTrace support all the .NET Frameworks ?

I have been asked this question many times and also found many people have some confusion around different supported version of .NET framework by IntelliTrace debugging. imageAs IntelliTrace is new features of Visual Studio 2010 Ultimate edition and VS 2010 came up with .NET 4.0, so many may got confused that IntelliTrace  only support debugging of .NET 4.0 features. But NO. IntelliTrace is available for .NET Framework 2.0 , 3.0, 3.5 and 4.0 . So, if you are creating any application (like Window, Console, ASP.NET)  with any framework from Visual studio 2010 you can use IntelliTrace Debugging. Even if, you have an earlier application which is based on .NET 3.5 or lesser and you are running it from VS 2010 Ultimate edition, you can enjoy the IntelliTrace features.  For an ASP.NET Application based on the targeted Framework version .iTrace log will be different. Generally for ASP.NET Application IntelliTrace log file name start with the name of the process which is handling the current request.

IntelliTrace Debugging – Video Demo

Recently I have published one complete tutorial on Visual Studio 2010 Debugging. Which covered almost all main features of debugging in Visual Studio 2010 like Basic of Breakpoints,  breakpoint labeling, data tips, multithreaded debugging, and parallel debugging and IntelliTrace debugging. You can read the complete article from My Blog or from CodeProject.

While preparing the article I had created one small video on IntelliTrace Debugging which will show you the demo of using IntelliTrace Debugging.  Hope you will enjoy this video.

kick it on DotNetKicks.com

Mastering in Visual Studio 2010 Debugging

Visual Studio IDE gives us a lot of tools to debug our application. Sometimes debugging activity takes a very long time to identify the root cause. But VS IDE provides a lot of handy tools which help to debug code in a better way. Debugger features include error listing, adding breakpoints, visualize the program flow, control the flow of execution, data tips, watch variables and many more. Many of them are very common for many developers and many are not. In this article, I have discussed all the important features of VS IDE for debugging like Breakpoint, labeling and saving breakpoints, putting conditions and filter on breakpoints, DataTips, Watch windows, Multithreaded debugging, Thread window, overview of parallel debugging and overview of IntelliTrace Debugging