尝试读取转储时出现"无法加载符号"

时间:2020-03-05 18:39:50  来源:igfitidea点击:

我有一个有时会在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+                                    *
*********************************************************************

这是什么意思,我该如何"修复"它?

解决方案

回答

实际上,我们需要将这些符号下载到计算机上,或者如果我们在调试时在线,则可以将其配置为随时下载。

这是详细讨论此问题的链接:http://www.microsoft.com/whdc/DevTools/Debugging/debugstart.mspx

回答

快速答案是

c:>设置_NT_SYMBOL_PATH = SRV * C:\ WINDOWS \ Symbols * http://msdl.microsoft.com/download/symbols

在开始windbg之前。

回答

我通常会转到"系统"控制面板,然后依次单击"高级"选项卡和"环境"。然后,我们可以添加必需的_NT_SYMBOL_PATH变量。这样,在运行WinDbg之前,我们无需在命令行上执行任何操作。

Staffan建议的srv * C:\ Windows \ Symbols * http://msdl.microsoft.com/download/symbols的设置很好。不过,我通常更喜欢使用自己的配置文件来存储符号(因此,我不需要编辑C:\ Windows \ Symbols的权限,因为出于安全卫生的考虑,我故意以受限用户身份运行)。因此(以我为例),我的" _NT_SYMBOL_PATH"是" srv * C:\ Documents and Settings \ cky \ symbols * http:///msdl.microsoft.com/download/symbols"。

希望这可以帮助。 :-)

回答

正如@Vaibhav指出的,我们实际上需要下载这些符号并配置windbg来使用它们。

另请注意以下几点:
!sym noisy-激活噪声符号加载
lm v-与" m"参数一起使用以查看已加载模块的信息。
lme D sm列出所有不带符号的模块。

回答

更快的答案:

!symfix

但这只会影响当前的windbg / ntsd / cdb / kd。