Wednesday, July 10, 2013

Debugging the source code of third party components (NHibernate and others)

The .NET framework source code debugging has been received as one of the most impressive features of VS2008. Sadly, although many detailed instructions has been published (here, here, here and dozen of other web pages) it just doesn’t work.

There are probably multiple reasons for this, including the out-of-sync versions of base class libraries. People complain, open issues on Connect, ask on Stackoverflow, all this for nothing.

My initial attempt on this with VS2012 and .NET 4.5 was succesfull. I was able to debug into Console.WriteLine and other library methods and I’ve found this amazing. I think it worked for few hours and then stopped working and despite all my attempts, prayers and curses it just doesn’t work anymore.

What seems to work however, is the Symbol Source, they publish *.pdbs for multiple NuGet packages including NHibernate, Autofac, Castle or ServiceStack.

What you get then is when you register their source server in VS (follow this tutorial but point to http://srv.symbolsource.org/pdb/Public as described here), you can debug the internals of all these 3rd party components. Works like a charm.

No comments: