Symbols, Please!

Visual Studio 2005 provides many new debugging features that come in handy for Chrome
and C# developers alike, and one of the coolest, in my opinion, is the (undocumented)
Symbol Server support.

Microsoft is running a Symbol Server that provides .PDB debug symbol files for a
wide variety of Microsoft-deployed .exe and .dll files, from the core Windows operating
files such as user32.dll, kernel32.dll etc., over the System.* dlls of the .NET
framework to even the Visual Studio development environment itself. The advantage
of the symbol server to the downloadable
symbol packages
is that the symbol server is kept up to date whenever files
change – for example via Service Packs or automatic updates.

While even the availability of these symbols itself seems to be a well-kept public
secret, what’s even less know is that Visual Studio 2005 introduces support for
automatically downloading symbol files as they are needed – making sure that wherever
your debugging takes you, you’ll have the right PDBs to guide the way.

Setting up Visual Studio to use the symbol server is very simple: Chose Tools|Options
to open the Options dialog, then navigate to Debugging|Symbols in the treeview.
Click the New Folder button in the top right corner, and enter the following
URL as Symbol Location:
Next, go to the Cache Symbols from symbol server to this directory edit box
and enter a path of your choice (the generally well-accepted default is C:\Symbols).
Click Ok to accept your changes.

Next time you start a debugging session, you will notice that Visual Studio automatically
downloads the necessary .PDB files from the server, and will provide you with proper
information such as method names in your callstacks – for OS functions, core .NET
Framework classes, or – if like me you’re spending a lot of time debugging Visual
Studio itself – even the IDE code. (For some .dlls the download might take a while,
as .PDB files can get rather huge – but Visual Studio will cache local copies of
the files in the folder you specified above, so it will only download each file,

Happy Debugging!

Callstack with Symbols

marc hoffman

Chief Architect and CEO here at RemObjects Software. Project Manager for Elements and lead developer of Fire, our awesome new development environment for the Mac.