Because this is my first post on this blog, let me introduce myself. My name is John Allen. I’ve been on the PFE team for 5 years and been with Microsoft for 9 years. All of those years I’ve been debugging and troubleshooting all kinds of customer applications. I focus on all developer technologies and products.
One of the main things that myself and the others on the PFE - Developer team do is capture and analyze memory dump files. A majority of the time we are debugging .NET applications and have found that sometimes the debugger will hang while trying to analyze a dump. There are a couple of key characteristics:
We will talk more about symbol loading in a subsequent post but here is a workaround for this problem:
[exclusions] System.Windows.Forms.pdb System.pdb System.Web.pdb
After you have done this you can try loading the dump file again and see if the hang occurs again. If this does not resolve your problem in run the following command:
0:020> lm m *_ni start end module name 637a0000 63d02000 System_Xml_ni (deferred) 64890000 6498a000 System_Configuration_ni (deferred) 65140000 657a6000 System_Data_ni (deferred) 65f20000 66ac6000 System_Web_ni (deferred) 698f0000 69ad0000 System_Web_Services_ni (deferred) 790c0000 79b90000 mscorlib_ni (deferred) 7a440000 7ac06000 System_ni (deferred)
This will dump all of the native image assemblies - these are the assemblies that have been nGened and are loaded from the nGen cache. Then for each assembly that is listed add them to the [exclusions] list in the SymSrv.ini file. Be sure to remove the _ni, replace it with .dll and replace the remaining underscores with a dot. For instance in the above output the [exclusion] list would look like:
[exclusions] System.Xml.pdb System.Configuration.pdb System.Data.pdb System.Web.pdb System.Web.Services.pdb mscorlib.pdb System.pdb
Finally, if you are looking for additional information on managed debugging you should check out Tess's blog - http://blogs.msdn.com/tess/
Thanks, John Allen