问题
I have an application that sometimes causes a BSOD on a Win XP machine. Trying to find out more, I loaded up the resulting *.dmp file (from C:\Windows\Minidump), but get this message when in much of the readout when doing so:
*********************************************************************
* Symbols can not be loaded because symbol path is not initialized. *
* *
* The Symbol Path can be set by: *
* using the _NT_SYMBOL_PATH environment variable. *
* using the -y <symbol_path> argument when starting the debugger. *
* using .sympath and .sympath+ *
*********************************************************************
What does this mean, and how do I "fix" it?
回答1:
I usually go to the System control panel, then Advanced tab, then Environment. You can then add the requisite _NT_SYMBOL_PATH
variable. Then you don't have to do anything on the command-line before running WinDbg.
The setting of srv*C:\Windows\Symbols*http
://msdl.microsoft.com/download/symbols
as suggested by staffan is fine. I usually prefer to use my own profile for storing symbols though (so that I don't need to edit the permissions for C:\Windows\Symbols
, since I intentionally run as a limited user, for good security hygiene). Thus (in my case) my _NT_SYMBOL_PATH
is srv*C:\Documents and Settings\cky\symbols*http
://msdl.microsoft.com/download/symbols
.
Hope this helps. :-)
回答2:
Quick answer is to
c:\> set _NT_SYMBOL_PATH=SRV*C:\WINDOWS\Symbols*http://msdl.microsoft.com/download/symbols
before starting windbg.
回答3:
Quicker answer:
!symfix
But it only affects the current windbg/ntsd/cdb/kd.
回答4:
you actually need to either download the symbols to your computer, or configure it to download as you go if you are online while debugging.
Here's the link that talks about this in detail: http://www.microsoft.com/whdc/DevTools/Debugging/debugstart.mspx
回答5:
As @Vaibhav noted, you actually need to download the symbols and configure windbg to use them.
Also note the following: !sym noisy -- Activates noisy symbol loading lm v -- Use with "m" parameter to look at information for a loaded module. lme D sm - List all modules w/o symbols.
来源:https://stackoverflow.com/questions/12039/symbols-can-not-be-loaded-when-trying-to-read-dump