解决VS“无法查找或打开PDB文件”
Bug描述
我们使用 VS(Visual Studio)编译程序时会出现“无法查找或打开PDB文件”的提示,并且此时程序会生成失败,无法运行,如下图所示:
出现这种提示并不是代码写错了,而是编译器设置的问题,改一下设置就 OK 了。
什么是PDB文件?有什么作用?
当程序在 VS 上编译时,程序所依赖的所有动态链接库(dll 文件)也会被编译,编译过程中每个 dll 都会产生一个pdb文件,又称为“符号文件”,是一个存储数据的信息文件,其包含 dll 库在编译过程的某些调试信息,例如程序中所用到的全局变量、局部变量、函数名以及他们的入口地址等。
pdb 文件主要用于调试程序,多用于当VS中有多个项目,且项目之间互有依赖关系时,使用pdb文件调试程序,往往会事半功倍,初学者一般不会用到。
当使用VS 调试程序时,会默认加载你的程序以及程序依赖的dll库产生的所有pdb文件,但是结果往往是VS自己找不到依赖库的pdb文件,于是就提示给你“无法查找或打开pdb文件”。
如何修复这个Bug
我们可以通过对 VS 做适当的设置,使之能够查找到相应的 PDB 文件,具体步骤如下(这里我们以 VS2017 为例进行说明,其它版本的 VS 操作步骤也一样)。
- 选择菜单栏中的“调试 --> 选项”,如下图所示:
- 弹出“选项”对话框后,选择“调试 --> 常规”,在右侧选项栏中勾选“启用源服务器支持”(包含的 3 个子选项不用勾选),此时会弹出一个安全警报框,选择“是”即可,如下图所示:
- 还是在“选项”对话框中,选择“调试 --> 符号”,在右侧选项栏中勾选“Microsoft符号服务器”,此时会弹出一个提示对话框,点击“确定”即可。同时,对于缓存符号的目录,选择图示中的目录即可:
- 确定之后,重新运行你的程序,首次运行时,由于编译器会加载所有动态链接库的pdb文件,可能会等到几秒钟。程序运行后,之前输出窗口中的“无法查找或打开pdb文件”的提示不见了,如下图所示:
如上图所示,由于pdb文件,又名“符号文件”,所以“已加载符号”,也就是成功加载了动态链接库对应的pdb文件。
解决VS“无法查找或打开PDB文件”相关推荐
- 成功解决(Win32): 已加载“C:\Windows\SysWOW64\ntdll.dll”。无法查找或打开 PDB 文件。
成功解决(Win32): 已加载"C:\Windows\SysWOW64\ntdll.dll".无法查找或打开 PDB 文件. 目录 解决问题 解决方法 解决问题 解决方法 工具栏 ...
- Visual Studio无法查找或打开 PDB 文件解决办法
Visual Studio无法查找或打开 PDB 文件解决办法 用VS调试程序时,有时会在VS底部的"输出"框中提示"无法查找或打开 PDB 文件".这该怎么解 ...
- 解决“C:\Windows\System32\ntdll.dll”。无法查找或打开 PDB 文件问题
解决"C:\Windows\System32\ntdll.dll".无法查找或打开 PDB 文件问题 参考文章: (1)解决"C:\Windows\System32\nt ...
- Visual Studio 2017 “无法查找或打开PDB文件“ 解决方法
运行的时候提示无法查找或打开PDB文件 解决办法(注意:必须使用管理员身份运行VS) 第一步 打开调试窗口的选项 第二步 调试-->常规-->勾选启用源服务器支持 它会弹出警告窗口,点&q ...
- “无法查找或打开PDB文件”解决办法
子丰在使用VS2013调试运行程序时提示"无法查找或打开PDB文件": 解决办法: 1. 在VS2013的菜单栏,选择[工具]->[选项]. 2. 在选项窗口中,选择[调试] ...
- VS“无法查找或打开PDB文件”是怎么回事?如何解决
有时候,我们使用 VS(Visual Studio)编译程序时会出现"无法查找或打开PDB文件"的提示,并且此时程序会生成失败,无法运行,如下图所示: 大家不要惊慌,出现这种提示并 ...
- 服务器上打开pdb文件,VS“没法查找或打开PDB文件”是怎么回事?如何解决
有时候,咱们使用 VS(Visual Studio)编译程序时会出现"没法查找或打开PDB文件"的提示,而且此时程序会生成失败,没法运行,以下图所示:缓存 你们不要惊慌,出现这种提 ...
- VS2013 编译程序时提示 无法查找或打开 PDB 文件
"Draw.exe"(Win32): 已加载"C:\Users\YC\Documents\Visual Studio 2013\Projects\Draw\Debug\ ...
- visual studio 调试时提示 已加载“C:\Windows\SysWOW64\ntdll.dll”。无法查找或打开 PDB 文件。
问题描述 "Win32Project3.exe"(Win32): 已加载"D:\software\VS2013\VS2013 文档\Win32Project3\Debug ...
最新文章
- OpenCV3.3中支持向量机(Support Vector Machines, SVM)实现简介及使用
- OSI七层 TCP/IP四层 TCP/IP协议栈: 不同的通信协议的大集合
- 网络bcc程序测试方案
- redis 高级特性一
- Java基础—异常分类及处理
- 430. Flatten a Multilevel Doubly Linked List | 430. 扁平化多级双向链表(DFS)
- webbrowser 修改浏览器版本的方法
- 协方差理解,PCA以及奇异值分解(SVD)
- gitee自动部署的使用
- 目录、路径、虚拟路径
- iOS原生实现二维码扫描
- 用call/cc合成所有的控制流结构
- codeforces884D(大概是构造,优先队列)
- 用java写银行存款对账,银行存款对账要怎么做
- ios 故事版 设定UIImageRenderingMode的方式
- 超简单的visio安装教程——史上最简单(office版本不撞车)
- 爬虫-豆瓣书籍排行榜及用户信息-2021.7.23-使用Scrapy框架-用MongoDB存储数据
- SQL语句习题总练习
- 【室内温度+树莓派性能监控】树莓派+DS18B20温度传感器+0.96寸OLED显示屏使用及安装经验分享
- 基于bp神经网络的pid控制,pid神经网络什么原理
热门文章
- 多重共线性的诊断(R语言)
- sqr和Oracle的区别,Oracle学习笔记:a inner join b与from a,b where a.x=b.x的差异
- opencv摄像头拍摄视频实时边缘提取(Canny)
- THINKPHP 5.0.7 开启多语言模式
- window.open() 某些情况会被浏览器阻止弹出窗口及解决办法
- 基于verilog的三段式状态机
- JS输入银行卡 每4位 加空格分隔
- csgo调出参数_csgo设置参数设置怎么调出来
- firefly rk3399
- php id中 代表什么,cmiit id是什么意思