Setting up Visual Studio 2010 to step into Microsoft .NET Source Code

Using the Microsoft Symbol Server to obtain symbol debugging information is now much easier in VS 2010. Microsoft gives you access to their internet symbol server that contains symbol files for most of the .NET framework including the recently announced availability of MVC 2 Symbols. 

SETUP

In VS 2010 RTM, go to Tools –> Options –> Debugging –> General. Check “Enable .NET Framework source stepping”
image
We get the following dialog box

 image
This automatically disables “Enable My Code”
 image
Go to Debugging –> Symbols and Check “Microsoft Symbol Servers”. You can selectively exclude modules if you want to.
  image
You will get a warning dialog like so:
image
Hitting OK will start the download process
  image
The setup is complete. You are now ready to start debugging!


DEBUGGING

Add a break point to your application and run the application in debug mode (F5 shortcut for me). Go to your call stack when you hit the break point. Right click on a frame that is grayed out.
image
Select “Load Symbols from” “Microsoft Symbol Servers”. VS will begin a one time download of that assembly. This assembly will be cached locally so you don’t have to wait for the download the next time you debug the app.
image 
We get a one time license agreement dialog box
image

You might see an error like the one below regarding different encoding (hopefully will be fixed).
image  
Assemblies for which the symbols have been loaded are no longer grayed out. Double clicking on any entry in the call stack should now directly take you to the source code for that assembly.

image

image

AFAIK, not all symbols are available on the MS symbol server. In cases like that you will see a tab like the one below and be given the option to “Show Disassembly”.

image

Enjoy!

 

Check out this post also: VS 2010 Debugger Improvements (BreakPoints, DataTips, Import/Export)

Newsreel Announcer: Humiliated, Muntz vows a return to Paradise Falls and promises to capture the beast alive!
Charles Muntz: [speaking to a large audience outside in the newsreel] I promise to capture the beast alive, and I will not come back until I do!

No Comments