I've setup _NT_SYMBOL_PATH and have pointed it to
srv*c:\symbols*http://msdl.microsoft.com/download/symbols
When starting the debugger, I notice that the Windows related dlls load quickly. However, our company's dlls are taking a god awful long time to load. When I get rid of _NT_SYMBOL_PATH, restart visual studio, then everything loads pretty quickly (albeit I don't have MS symbols).
It's almost as if the symbol server above is being searched for my internal company dll's pdbs instead of first checking to see if they exist locally. Some of these dlls I do not have pdbs for. Some are part of my solution, so I build them when debugging and always have pdbs.
How is Visual Studio searching for symbols? Is there anyway I can control how visual studio searches for symbols? Can I explicitly say that for dlls from a given directory are not to be searched for symbols? Is there anything else that might drag down how fast symbols are loaded or anything I can do to speed up the process?
Visual Studio searches _NT_SYMBOL_PATH before any paths configured inside Visual Studio. This is a "feature" of the debugging engine. This means that Microsoft's symbol servers will be searched for your symbols.
In Visual Studio 2010, they've made this explicit by (if it's set) including _NT_SYMBOL_PATH in the Debugging Symbols dialog. Unfortunately, this entry cannot be moved up or down.
To get around this, put your symbol server in _NT_SYMBOL_PATH before the Microsoft stuff:
_NT_SYMBOL_PATH=cache*C:\symbols;\\mysymsvr\Symbols;SRV*C:\symbols*http://msdl.microsoft.com/download/symbols
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With