Visual Studio

SymbolSource provides a public symbol and source server for open source projects that can be used out-of-the-box in Visual Studio. If you are already using other servers you can just paste the URL below into your list.

If this is the first time you come across the topic of debugging with a symbol/source server, please follow the instructions below on configuring Visual Studio. We also recommend reading the blog post series by Cameron Skinner.

Symbol/source server URL

Public non-authenticated URL:
http://srv.symbolsource.org/pdb/Public

Individual authenticated URL:
Please log in to view.

The non-authenticated URL allows you to use SymbolSource without registration, but we advise you to create an account and use the authenticated one, because it enables us to improve our service by tracking usage and potential problems. Should you come across any issues when using SymbolSource, we will be able to find the source of the problem quicker.

Symbol URL authentication is also part of our plan to provide sources of commercial libraries.

Recommended configuration

To configure Visual Studio for symbol/server use, follow these instructions:

  1. Go to Tools -> Options -> Debugger -> General.
  2. Uncheck “Enable Just My Code (Managed only)”.
  3. 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).
  4. Check “Enable source server support”.
  5. Uncheck “Require source files to exactly match the original version”
  6. Go to Tools -> Options -> Debugger -> Symbols.
  7. Select a folder for the local symbol/source cache.
  8. 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
    • http://srv.symbolsource.org/pdb/Public or the authenticated variant (see above)
    • http://srv.symbolsource.org/pdb/MyGet or the authenticated variant (see above)
    • (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

  1. 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.

  2. To more effectively debug .NET Framework code it is useful to disable optimizations using the following command (environment variable): set COMPLUS_ZapDisable=1

  3. To speed up debug session startup it is recommended to go to Tools -> Options -> Debugger -> Symbols, select “Only specified modules” and enter appropriate assembly names in the dialog provided.