Public symbol and source servers
As mentioned in our first blog post, there are official symbol servers for some software components and projects. Below is a short list of those that we could find.
- Microsoft
- http://referencesource.microsoft.com/symbols
- http://msdl.microsoft.com/download/symbols
- Mozilla
- http://symbols.mozilla.org/firefox
- http://symbols.mozilla.org/xulrunner
If you know about other, please let us know, so we can update this blog post.
Greetings to all MIX11 NuGet session participants
Greetings from Poland to all MIX11 NuGet session participants :)
The SymbolSource Team
Configuring Visual Studio
To configure Visual Studio for symbol/server use, follow these instructions:
- Go to Tools -> Options -> Debugging -> General.
- Uncheck “Enable Just My Code (Managed only)”.
- Uncheck “Enable .NET Framework source stepping”. Yes, it is misleading, but if you don't, then Visual Studio will ignore your custom server order (see further on).
- Check “Enable source server support”.
- Uncheck “Require source files to exactly match the original version”
- Go to Tools -> Options -> Debugging -> Symbols.
- Select a folder for the local symbol/source cache.
- Add symbol servers under “Symbol file (.pdb) locations”. Pay attention to the correct order, because some servers may contain symbols for the same binaries: with or without sources. We recommend the following setup:
- http://referencesource.microsoft.com/symbols
- (path from Visual Studio tab after you log in to this site)
- (other symbol servers with sources)
- http://msdl.microsoft.com/download/symbols
- (other symbol servers without sources)
The reason we ask you to enter a personalized path to our symbol/source server is to be able to provide a better service through monitoring what symbols or sources we are missing, and what projects are mostly used.
Tips & Tricks
When using a symbol server for some of your dependencies be sure not to have any other PDB files of those libraries present in the same directory as the DLL files. When debugging code using Library.dll, Visual Studio will always first load Library.pdb from the same directory, which will disable symbol and source server usage.
To more effectively debug .NET Framework code it is useful to disable optimizations using the following command (environment variable):
set COMPLUS_ZapDisable=1