当前位置:网站首页>VS“无法查找或打开PDB文件”是怎么回事?如何解决
VS“无法查找或打开PDB文件”是怎么回事?如何解决
2022-08-01 09:26:00 【Love coldplay】
有时候,我们使用 VS(Visual Studio)编译程序时会出现“无法查找或打开PDB文件”的提示,并且此时程序会生成失败,无法运行,如下图所示:
#include<iostream>
#include<vector>
using namespace std;
int main()
{
vector<int>v1; // 创建一个空的vector;
vector<int>v2(5); //创建元素个数为5的vector;
vector<int>v3(7, 3); //创建元素个数为7,且值均为3的vector
vector<int>v4(v3); // 复制构造函数
vector<int>v5(v3.begin(), v3.begin() + 3); //复制v3区间内的元素到v5中
// 方式1
cout << "1. v1的元素个数:" << v1.size() << endl;
cout << "2. v2的输出结果:";
for (unsigned int i = 0; i < v2.size(); i++)
{
cout << v2[i] << " ";
}
cout << endl;
}

大家不要惊慌,出现这种提示并不是代码写错了,而是编译器设置的问题,改一下设置就 OK 了。
先说一下PDB文件是什么
当程序在 VS 上编译时,程序所依赖的所有动态链接库(dll 文件)也会被编译,编译过程中每个 dll 都会产生一个pdb文件,又称为“符号文件”,是一个存储数据的信息文件,其包含 dll 库在编译过程的某些调试信息,例如程序中所用到的全局变量、局部变量、函数名以及他们的入口地址等。
pdb 文件主要用于调试程序,多用于当VS中有多个项目,且项目之间互有依赖关系时,使用pdb文件调试程序,往往会事半功倍,初学者一般不会用到。
当使用VS 调试程序时,会默认加载你的程序以及程序依赖的dll库产生的所有pdb文件,但是结果往往是VS自己找不到依赖库的pdb文件,于是就提示给你“无法查找或打开pdb文件”。
如何修复这个错误
我们可以通过对 VS 做适当的设置,使之能够查找到相应的 PDB 文件,具体步骤如下(这里我们以 VS2017 为例进行说明,其它版本的 VS 操作步骤也一样)。
1) 选择菜单栏中的“调试 --> 选项”,如下图所示:

2) 弹出“选项”对话框后,选择“调试 --> 常规”,在右侧选项栏中勾选“启用源服务器支持”(包含的 3 个子选项不用勾选),此时会弹出一个安全警报框,选择“是”即可,如下图所示:

3) 还是在“选项”对话框中,选择“调试 --> 符号”,在右侧选项栏中勾选“Microsoft符号服务器”,此时会弹出一个提示对话框,点击“确定”即可。同时,对于缓存符号的目录,选择图示中的目录即可:

4) 确定之后,重新运行你的程序,首次运行时,由于编译器会加载所有动态链接库的pdb文件,可能会等到几秒钟。程序运行后,之前输出窗口中的“无法查找或打开pdb文件”的提示不见了,如下图所示:

如上图所示,由于pdb文件,又名“符号文件”,所以“已加载符号”,也就是成功加载了动态链接库对应的pdb文件。
边栏推荐
猜你喜欢

BGP综合实验
![[Dataset] Dataset summary of various insulators, bird's nests and anti-vibration hammers](/img/02/927f4e228eb3abbd76cade5be00352.png)
[Dataset] Dataset summary of various insulators, bird's nests and anti-vibration hammers

HoloView 在 jyputer lab/notebook 不显示总结

codeforces每日5题(均1600)-第二十七天

net stop/start mysql80 拒绝访问

企业数据虚拟化综合指南

Leetcode - 6135: the longest part of the figure

HoloView--Customization

杨辉三角(c语言实现)
![[Beyond programming] When the fig leaf is lifted, when people begin to accept everything](/img/e1/ff8d416c99e1f370d73b9520654ddf.jpg)
[Beyond programming] When the fig leaf is lifted, when people begin to accept everything
随机推荐
热修复技术可谓是百花齐放
sql server, FULL模式, dbcc shrinkfile(2,1) 不能收缩事务日志,还是原来的大小,是为什么?
2022杭电中超杯(1)个人题解
How does UXDB return the number of records for all tables in the current database?
Prime Ring Problem
Redis middleware (from building to refuse pit)
js中如何实现深拷贝?
Static Pod, Pod Creation Process, Container Resource Limits
ASP.NET Core 6框架揭秘实例演示[30]:利用路由开发REST API
How to get page data
Explain / Desc 执行计划分析
Explain / Desc execution plan analysis
18张图,直观理解神经网络、流形和拓扑
扁平数组转树结构实现方式
堆内存的介绍及应用(含例子)
network basic learning
用OpenCV的边缘检测
正则表达式符号
HoloView--live data
PHP获取时间戳后写数据库的一个问题