VS“无法查找或打开PDB文件”问题
Posted pengege666
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VS“无法查找或打开PDB文件”问题相关的知识,希望对你有一定的参考价值。
文章目录
前言
在VS上编写完程序,想让程序简单调试一下,如下图所示
但是,有时候在VS上运行程序时候会出现无法查找或打开 PDB 文件
错误
“test.exe”(Win32): 已加载“G:\\vsTest\\test\\Release\\test.exe”。已加载符号。
“test.exe”(Win32): 已加载“C:\\Windows\\SysWOW64\\ntdll.dll”。无法查找或打开 PDB 文件。
“test.exe”(Win32): 已加载“C:\\Windows\\SysWOW64\\kernel32.dll”。无法查找或打开 PDB 文件。
“test.exe”(Win32): 已加载“C:\\Windows\\SysWOW64\\KernelBase.dll”。无法查找或打开 PDB 文件。
“test.exe”(Win32): 已加载“C:\\Windows\\SysWOW64\\apphelp.dll”。无法查找或打开 PDB 文件。
“test.exe”(Win32): 已加载“C:\\Windows\\SysWOW64\\ucrtbase.dll”。无法查找或打开 PDB 文件。
“test.exe”(Win32): 已加载“C:\\Windows\\SysWOW64\\msvcp140.dll”。无法查找或打开 PDB 文件。
“test.exe”(Win32): 已加载“C:\\Windows\\SysWOW64\\vcruntime140.dll”。无法查找或打开 PDB 文件。
“test.exe”(Win32): 已加载“C:\\Windows\\SysWOW64\\vcruntime140.dll”。无法查找或打开 PDB 文件。
“test.exe”(Win32): 已卸载“C:\\Windows\\SysWOW64\\vcruntime140.dll”
“test.exe”(Win32): 已加载“C:\\Windows\\SysWOW64\\kernel.appcore.dll”。无法查找或打开 PDB 文件。
“test.exe”(Win32): 已加载“C:\\Windows\\SysWOW64\\msvcrt.dll”。无法查找或打开 PDB 文件。
“test.exe”(Win32): 已加载“C:\\Windows\\SysWOW64\\rpcrt4.dll”。无法查找或打开 PDB 文件。
PDB文件介绍及Bug由来
1.PDB文件
PDB(Program Data Base),意即程序的基本数据,是VS编译链接时生成的文件。PDB文件是在编译工程的时候产生的,它是和对应的模块(exe或dll)一起生成出来的。DPB文件主要存储了VS调试程序时所需要的基本信息,主要包括源文件名、变量名、函数名、FPO(帧指针)、对应的行号等等。因为存储的是调试信息,所以一般情况下PDB文件是在Debug模式下才会生成。
2 .程序编译过程
当程序在 VS 上编译时,程序所依赖的所有动态链接库(dll 文件)也会被编译,编译过程中每个 dll 都会产生一个pdb文件,又称为“符号文件”,是一个存储数据的信息文件,其包含 dll 库在编译过程的某些调试信息,例如程序中所用到的全局变量、局部变量、函数名以及他们的入口地址等。
pdb 文件主要用于调试程序,多用于当VS中有多个项目,且项目之间互有依赖关系时,使用pdb文件调试程序,往往会事半功倍,初学者一般不会用到。
3.Bug产生原因
当使用VS 调试程序时,会默认加载你的程序以及程序依赖的dll库产生的所有pdb文件,但是结果往往是VS自己找不到依赖库的pdb文件,于是就提示给你“无法查找或打开pdb文件”。
解决方案
1)调试 -》 选项
2)调试 -》 常规 -》启用源服务器支持
3)调试 -》 符号,Microsoft符号服务器
选择合适的位置存放缓存符号
再次运行调试
打开缓存目录简单查看文件夹。(发现文件夹中出现了dll对应的pdb)
运行结果
参考资料:
http://c.biancheng.net/view/474.html
VS2012 每次编译程序都会出现3个无法查找或打开 PDB 文件。
已加载“C:\Windows\SysWOW64\ntdll.dll”。无法查找或打开 PDB 文件。
已加载“C:\Windows\SysWOW64\kernel32.dll”。无法查找或打开 PDB 文件。
已加载“C:\Windows\SysWOW64\KernelBase.dll”。无法查找或打开 PDB 文件。
VS2012每次编译程序,都会出现3个无法查找或打开PDB文件,是设置错误造成的,解决方法如下:
1、首先在电脑中打开vs编程软件,在菜单栏上找到“工具”---》“选项”。
2、然后在打开的选项设置界面中,找到调试的功能选项。
3、在调试的选项里,展开后,可以看到调试符号的子选项。
4、在右边可以看到“符号文件(.pdb)的位置”的字样,给“MicroSoft符号服务器”打勾,如下图所示,点击确定保存退出。
5、最后在主界面,可以看到正在从microsoft服务器下载.pdb符号文件,vs也正在加载这些符号文件,等待一会就完成了。
参考技术A 1、调试2、选项和设置
3、右边勾上 启用源服务器支持
4、左边点 符号
5、把微软符号服务器勾
6、运行的时候等一下 莫慌!!
7、问题解决本回答被提问者采纳 参考技术B 这些消息不影响调试和运行,要想关闭的话:
1.菜单栏->调试->选项->调试->符号 选中最下方<仅指定的模块>
2.菜单栏->调试->选项->调试->输出窗口->常规输出设置 模块加载消息选择<关闭>
3.保存,然后调试即可。
以上是关于VS“无法查找或打开PDB文件”问题的主要内容,如果未能解决你的问题,请参考以下文章