错误:当我从“ WinDbg”打开可执行文件时,找不到符号文件。默认为ntdll.dll导出符号

时间:2018-10-03 09:18:18

标签: c++ visual-c++ windbg

问题:我生成了.msi文件(安装程序),当我尝试打开该安装程序时,它没有响应。

要找到根本原因,我正在使用WinDbg并打开在以下路径中生成的可执行文件(PowerChart.exe): C:\ Program Files \ EMR \ PowerChart

我采用了两种方法来加载可执行文件,但是在两种方法中,我都遇到了错误,例如符号未正确加载。

方法1:

在“符号搜索路径”中,我设置了"srv*c:\symbols*https://msdl.microsoft.com/download/symbols

(为此,我在“ C”驱动器中创建了“ symbols”文件夹,以便它将下载这些符号并将其放置在“ symbols”表中)

然后从Windbg的“文件”菜单选项中的“打开可执行文件...”打开PowerChart.exe。

然后我遇到以下错误:

Error: Symbol file could not be found. Defaulted to export symbols for ntdll.dll

当我在浏览器中运行URL(https://msdl.microsoft.com/download/symbols)时,它显示“无法检索您请求的数据”

我们还需要连接到互联网下载这些符号吗? 这是我给出的正确符号路径吗? 请帮助我解决此错误。

方法2:

生成.msi文件时,还会在以下路径中生成.pdb文件(EMR.pdb):

E:\ Code \ EMR \ bin \ debug \ zh-CN

所以,我要做的是,将pdb路径附加在“符号搜索路径”中

E:\ Code \ EMR \ bin \ debug \ zh-CN

然后从“打开可执行文件...”打开PowerChart.exe。 然后我收到以下错误:

Error: Symbol file could not be found. Defaulted to export symbols for ntdll.dll

Symbol Loading Error Summary.

Module name Error
ntdll PDB not found  : E:\Code|EMR\bind\debug\en-us\symbols\dll\ntdll.pdb

我不确定这种方法是否正确。

请帮助我并建议如何解决符号错误?

1 个答案:

答案 0 :(得分:0)

从您共享的内容中,我可以看到您遇到问题的是“ ntdll.dll”。确实,这些符号应该来自“ srv c:\ symbols https://msdl.microsoft.com/download/symbols”,但我看来似乎没有发生。

如果我建议您坚持使用第二种方法,并另外设置一个环境变量,即将'_NT_SYMBOL_PATH'设置为'srv C:\ symbols http://msdl.microsoft.com/download/symbols'。