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文件”问题的主要内容,如果未能解决你的问题,请参考以下文章

VS“无法查找或打开PDB文件”问题

VS“无法查找或打开PDB文件”是怎么回事?如何解决

部分无法查找或打开 PDB 文件

VS2015中无法查找或打开 PDB 文件

无法查找或打开 PDB 文件解决办法

vs调试时底部输出调试信息“无法查找或打开 PDB 文件”解决办法