“无法加载符号” 当尝试读取转储时
我的一个应用程序有时会在 Win XP 计算机上导致 BSOD。 为了了解更多信息,我加载了生成的 *.dmp 文件(来自 C:\Windows\Minidump),但在执行此操作时在大部分读数中收到此消息:
*********************************************************************
* 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+ *
*********************************************************************
这意味着什么,以及如何“修复” “ 它?
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?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
我通常会转到“系统”控制面板,然后转到“高级”选项卡,然后转到“环境”。 然后,您可以添加必需的
_NT_SYMBOL_PATH
变量。 那么在运行 WinDbg 之前您不必在命令行上执行任何操作。按照工作人员的建议设置 srv*C:\Windows\Symbols*http:
//msdl.microsoft.com/download/symbols
就可以了。 不过,我通常更喜欢使用自己的配置文件来存储符号(这样我就不需要编辑C:\Windows\Symbols
的权限,因为我故意以受限用户身份运行,这样我就不需要编辑 C:\Windows\Symbols 的权限了。安全卫生)。 因此(就我而言)我的_NT_SYMBOL_PATH
是srv*C:\Documents and Settings\cky\symbols*http
://msdl.microsoft.com/download /符号
。希望这可以帮助。 :-)
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 forC:\Windows\Symbols
, since I intentionally run as a limited user, for good security hygiene). Thus (in my case) my_NT_SYMBOL_PATH
issrv*C:\Documents and Settings\cky\symbols*http
://msdl.microsoft.com/download/symbols
.Hope this helps. :-)
快速答案是
c:\> 设置 _NT_SYMBOL_PATH=SRV*C:\WINDOWS\Symbols*http://msdl.microsoft.com/download/symbols 。
在启动 Windbg 之前
Quick answer is to
c:\> set _NT_SYMBOL_PATH=SRV*C:\WINDOWS\Symbols*http://msdl.microsoft.com/download/symbols
before starting windbg.
更快的答案:
但它只影响当前的windbg/ntsd/cdb/kd。
Quicker answer:
But it only affects the current windbg/ntsd/cdb/kd.
实际上,您需要将符号下载到您的计算机上,或者如果您在调试时在线,则将其配置为随时下载。
以下是详细讨论此问题的链接:http://www.microsoft. com/whdc/DevTools/Debugging/debugstart.mspx
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
正如 @Vaibhav 指出的,您实际上需要下载符号并配置 Windbg 才能使用它们。
另请注意以下事项:
!sym嘈杂——激活嘈杂的符号加载
lm v——与“m”参数一起使用来查看已加载模块的信息。
lme D sm - 列出所有不带符号的模块。
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.