For more than 4 years i was using roeder reflector tool to dissemble dotnet dlls and now this has been acquired by Red Gate and they has enhanced it to debug dotnet pre compile dll’s and dot net framework dll’s in Visual Studio. Reflector program is still free but debugger tool is not, you have to pay some money for this.
Today on some MSDN blog i came to know that we can debug precompiled dot net dll’s in Visual Studio also that time i think that it must be introduced in VS 2010 but for my surprise it is also in VS 2008 earlier i did not checked. May be many people are not aware with this feature of Visual Studio.
I am going to tell you steps to do this with Visual Studio 2010 same in 2008. But make sure that you turn off this feature when not required because it may kill your system performance.
Open you dot net project property tab in Visual Studio
Select debug tab and un-check enable the visual studio hosting process and save project.
After this goto VS menu Tools->Options
Select Debugging and in debugging select Enable .Net Framework source Stepping(This will un select Enable Just My Code(Managed Only) in VS 2008) option and click ok. As soon as you will click ok Visual Studio will so one message like this and start dissemble all referenced dll to local cache.
This process will take time and depend upon your machine but one time process unless temp cache is not tempered.
After this for testing this feature make one instance of StringBuilder class and set a break point and debug your program and at break point step in using F11 and you can see dissemble code and you can debug it.