在Visual Studio C ++ 2010中找不到或打开PDB文件


117

我使用Visual Studio 2010 C ++,并且我的项目构建没有错误,但是运行它时我得到了。我在Windows XP上。

'Shaders.exe': Loaded 'C:\Documents and Settings\User\My Documents\Visual Studio        2010\Projects\Shaders\Win32\Debug\Shaders.exe', Symbols loaded.
'Shaders.exe': Loaded 'C:\WINDOWS\system32\ntdll.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\kernel32.dll', Cannot find or open the PDB  file
'Shaders.exe': Loaded 'C:\qt-everywhere-opensource-src-4.8.3\bin\QtCored4.dll', Symbols  loaded.
'Shaders.exe': Loaded 'C:\WINDOWS\system32\user32.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\gdi32.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\ole32.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\advapi32.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\rpcrt4.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\secur32.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\msvcrt.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\ws2_32.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\ws2help.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\msvcp100d.dll', Symbols loaded.
'Shaders.exe': Loaded 'C:\WINDOWS\system32\msvcr100d.dll', Symbols loaded.
'Shaders.exe': Loaded 'C:\qt-everywhere-opensource-src-4.8.3\bin\QtGuid4.dll', Symbols loaded.
'Shaders.exe': Loaded 'C:\WINDOWS\system32\comdlg32.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\comctl32.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\shell32.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\shlwapi.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\oleaut32.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\imm32.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\winmm.dll', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\WINDOWS\system32\winspool.drv', Cannot find or open the PDB file
'Shaders.exe': Loaded 'C:\qt-everywhere-opensource-src-4.8.3\bin\QtOpenGLd4.dll', Symbols loaded.

谢谢


2
不确定是否可以解决您的问题,但是我的问题解决了Cannot find or open the PDB fileVirtual C ++ 2010 Express上的问题。去Tools > Options > Debugging > Native检查Load DLL Exports
阿里

6
请注意,自Visual Studio 2015起,此选项的位置已更改,现在位于Tools > Options > Debugging > General > Load dll exports (Native only)
Remko Duursma 2015年

Answers:


245

PDB是Visual Studio使用的调试信息文件。这些是系统DLL,您没有调试符号。转到Tools->Options->Debugging->Symbols并选中“ Microsoft Symbol Servers”复选框,Visual Studio将自动下载PDB。或者,如果您不需要在这些模块中看到正确的调用堆栈,则可以忽略这些警告。


1
我有一个相同的问题,我试图将opencv安装到VS12。似乎正在加载符号,但是当我重建时没有任何变化。您是否有另一个想法为什么会这样?
Ege

它对我有用,但仅部分起作用。它无法为与openCV相关的dll加载符号。与@Ege相同
Ruchir

1
@Ruchir您需要在该对话框中指定OpenCV符号的路径。Microsoft Symbol Server仅具有Microsoft DLL的符号。
Paul

谢谢@保罗。我没有与OpenCV相关的PDB文件,似乎要获取它们,我必须使用cmake stackoverflow.com/a/19436870/5022962重新安装OpenCV 。不想重新安装的OpenCV虽然....
Ruchir

\Users\%Username%\AppData\Local\Temp\SymbolCache\MicrosoftPublicSymbols是典型的位置,其中所述下载的MS符号被存储。在我的项目的50 MB D / L期间,任务管理器从未将处于“沙漏”模式的VS10降级为“无响应状态”。
劳瑞·史坦

50

使用VS2013。
尝试以下工具->选项->调试->输出窗口->模块加载消息->关

这将禁用已加载模块的显示。


6
这是更好的解决方案,因为它删除了这些行,而不仅仅是修复了PDB卸载的文件信息。已投票。

为了做到这一点,视觉工作室环境改变了它的视觉环境:(
亚历山大·莱昂六世

9
请注意,这不是解决方案,只是避免了问题。
卡里·邦多克

3
@CaryBondoc取决于您对问题的看法...如果问题是输出中大量无关的噪声会使您容易错过实际信息,则此方法会更好,因为另一种方法只是改变了质量通过更换噪声Cannot find or open the PDB fileSymbols loaded。如果输出使用颜色编码或其他方式,那就太好了。当然,这样做还有可能在以后变得重要时忘却它。这就是程序员的生活。
PeterT

如何避免出现此窗口?当我在框架方法上按F11时,会出现此烦人的窗口。我必须注意何时按F11或按F10。请帮助
M.kazem Akhgary

33

保罗的回答是正确的,我只是将视觉效果轻松地实现。

转到工具->选项->调试->符号

设置标记为红色的复选框,它将从Microsoft下载pdb文件。设置该复选框时,它还将在下面的编辑框中为pdb文件设置默认路径,您无需更改它。

在此处输入图片说明


3
屏幕截图真的很有帮助!
strasis

4

如果您的项目地图中有多个项目,请在所有子项目中使用相同的硬编码PathFile PDB名称:

使用例如

D:\Visual Studio Projects\my_app\MyFile.pdb

不要使用例如

$(IntDir)\MyFile.pdb

在所有子项目中!

=编译器参数/ Fd


什么是“项目地图”?
Wakan Tanka

0

如果您没有在“工具”,“选项”,“调试”,“符号”中配置的符号缓存目录上没有“ 修改”权限,也会发生这种情况。


0

我遇到了类似的问题,Visual Studio(2017)说找不到我项目的PDB文件。我可以看到PDB文件确实存在于正确的路径中。我必须清理并重建项目,然后Visual Studio识别PDB文件并进行调试。


-1

您只需将.pdb的路径添加到VS的工作目录中即可!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.