Debugging fails in Visual Studio 2003 when using the debug symbol server

To improve your debugging experience, it is advisable to follow the procedure described in http://support.microsoft.com/?kbid=311503 using downloads from http://www.microsoft.com/whdc/devtools/debugging/debugstart.mspx.

 
However, keep in mind (apart from privacy concerns) that looking up symbols from that server takes time. So if you have time-outs in your application, unsuccessfully looking up symbols for third-party libraries (e.g. Oracle) may cause these time-outs to break your session.
 
You need to provide symbols for those files, or exclude them from lookup. Since I’m not sure if the first option is available, I’ll go with the second.
 
You’re probably using the symsrv.dll from either the Debugging Tool’s installation folder or Visual Studio’s Common7IDE.
 
Create a symsrv.ini file in this folder and add the following line:
 
[Exclusions]
For each set of libraries you need to exclude, add a line, e.g.
 
ora*
*enu.dll
The MSDN Library also describes a way to exclude via the registry (http://msdn.microsoft.com/library/en-us/debug/base/using_symsrv.asp) but I’m not sure whether you can use wildcards there.
 
To find libraries that cause unwanted lookups (e.g. your touchpad driver), I recommend using FileMon from SysInternals (http://www.sysinternals.com/).
If your symbols path is C:Symbols, you would set the Include filter to C:Symbols* and the Highlight filter to "FILE NOT FOUND". Then let it watch your debugging session startup. Exclude all files that are not found and not downloaded right away (indicated by a following successful OPEN).
 
BTW, those exclusion wildcards provide another good reason to have naming guidelines for libraries in place, e.g. MyCompany would want to name all files mycoXYZ.dll.
Advertisements
This entry was posted in Best practices. Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s