Getting the Individual Symbols for the OS

Sometimes while debugging you may come across a call stack that looks like this:

As a developer you should never debug without symbols for the OS. Every call stack in max contains modules from the OS. Without debug symbols the call stacks will be incomplete and debugging will become harder. For every stack frame that has no symbols, the debugger will insert an annoying message under it saying ‘Frames below may be incorrect and/or missing, no symbols loaded for <module>’. Missing symbols are so detrimental to debugging that the debugger may sometimes provide completely bogus names for stack frames.

There is a simple remedy to quickly, easily and simply getting individuals symbols for the operating system. If you want to get a whole bunch of symbols at once, then there are other ways to do that.

Just Right click and click on the module in the call stack and select ‘Load Symbols From’ > ‘Microsoft Symbol Servers’

This will download the symbol for the one selected module in your stack. Then all you then do is wait while Microsoft downloads a PDB to a known location on your computer. It will then rebuild your call stack for you and then you get this:

2 thoughts on “Getting the Individual Symbols for the OS

  1. Alex

    If you set your _NT_SYMBOL_PATH=SRV*d:symbols*

    Visual Studio will recognise this and pull down all symbols on demand. Although this can potentially slow down debugging significantly, so you may not want to leave it on.


  2. Chris

    This is a great point.

    I used to do just that. Debugging was painfully slow as a result. So for the last year, I’ll turn on that environment variable once every 6 months pull down a few symbols, and then turn off the environment variables. There are other tools out there, which will pull down ALL the microsoft symbols to a location of your choosing. That is definitely very cool, and bears looking into.


Leave a Reply

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

You are commenting using your 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 )

Connecting to %s