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 操作步骤也一样)。

  1. 选择菜单栏中的“调试 --> 选项”,如下图所示:
  2. 弹出“选项”对话框后,选择“调试 --> 常规”,在右侧选项栏中勾选“启用源服务器支持”(包含的 3 个子选项不用勾选),此时会弹出一个安全警报框,选择“是”即可,如下图所示:
  3. 还是在“选项”对话框中,选择“调试 --> 符号”,在右侧选项栏中勾选“Microsoft符号服务器”,此时会弹出一个提示对话框,点击“确定”即可。同时,对于缓存符号的目录,选择图示中的目录即可:
  4. 确定之后,重新运行你的程序,首次运行时,由于编译器会加载所有动态链接库的pdb文件,可能会等到几秒钟。程序运行后,之前输出窗口中的“无法查找或打开pdb文件”的提示不见了,如下图所示:

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

解决VS“无法查找或打开PDB文件”相关推荐

  1. 成功解决(Win32): 已加载“C:\Windows\SysWOW64\ntdll.dll”。无法查找或打开 PDB 文件。

    成功解决(Win32): 已加载"C:\Windows\SysWOW64\ntdll.dll".无法查找或打开 PDB 文件. 目录 解决问题 解决方法 解决问题 解决方法 工具栏 ...

  2. Visual Studio无法查找或打开 PDB 文件解决办法

    Visual Studio无法查找或打开 PDB 文件解决办法 用VS调试程序时,有时会在VS底部的"输出"框中提示"无法查找或打开 PDB 文件".这该怎么解 ...

  3. 解决“C:\Windows\System32\ntdll.dll”。无法查找或打开 PDB 文件问题

    解决"C:\Windows\System32\ntdll.dll".无法查找或打开 PDB 文件问题 参考文章: (1)解决"C:\Windows\System32\nt ...

  4. Visual Studio 2017 “无法查找或打开PDB文件“ 解决方法

    运行的时候提示无法查找或打开PDB文件 解决办法(注意:必须使用管理员身份运行VS) 第一步 打开调试窗口的选项 第二步 调试-->常规-->勾选启用源服务器支持 它会弹出警告窗口,点&q ...

  5. “无法查找或打开PDB文件”解决办法

    子丰在使用VS2013调试运行程序时提示"无法查找或打开PDB文件": 解决办法: 1. 在VS2013的菜单栏,选择[工具]->[选项]. 2. 在选项窗口中,选择[调试] ...

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

    有时候,我们使用 VS(Visual Studio)编译程序时会出现"无法查找或打开PDB文件"的提示,并且此时程序会生成失败,无法运行,如下图所示: 大家不要惊慌,出现这种提示并 ...

  7. 服务器上打开pdb文件,VS“没法查找或打开PDB文件”是怎么回事?如何解决

    有时候,咱们使用 VS(Visual Studio)编译程序时会出现"没法查找或打开PDB文件"的提示,而且此时程序会生成失败,没法运行,以下图所示:缓存 你们不要惊慌,出现这种提 ...

  8. VS2013 编译程序时提示 无法查找或打开 PDB 文件

    "Draw.exe"(Win32):  已加载"C:\Users\YC\Documents\Visual Studio 2013\Projects\Draw\Debug\ ...

  9. visual studio 调试时提示 已加载“C:\Windows\SysWOW64\ntdll.dll”。无法查找或打开 PDB 文件。

    问题描述 "Win32Project3.exe"(Win32): 已加载"D:\software\VS2013\VS2013 文档\Win32Project3\Debug ...

最新文章

  1. OpenCV3.3中支持向量机(Support Vector Machines, SVM)实现简介及使用
  2. OSI七层 TCP/IP四层 TCP/IP协议栈: 不同的通信协议的大集合
  3. 网络bcc程序测试方案
  4. redis 高级特性一
  5. Java基础—异常分类及处理
  6. 430. Flatten a Multilevel Doubly Linked List | 430. 扁平化多级双向链表(DFS)
  7. webbrowser 修改浏览器版本的方法
  8. 协方差理解,PCA以及奇异值分解(SVD)
  9. gitee自动部署的使用
  10. 目录、路径、虚拟路径
  11. iOS原生实现二维码扫描
  12. 用call/cc合成所有的控制流结构
  13. codeforces884D(大概是构造,优先队列)
  14. 用java写银行存款对账,银行存款对账要怎么做
  15. ios 故事版 设定UIImageRenderingMode的方式
  16. 超简单的visio安装教程——史上最简单(office版本不撞车)
  17. 爬虫-豆瓣书籍排行榜及用户信息-2021.7.23-使用Scrapy框架-用MongoDB存储数据
  18. SQL语句习题总练习
  19. 【室内温度+树莓派性能监控】树莓派+DS18B20温度传感器+0.96寸OLED显示屏使用及安装经验分享
  20. 基于bp神经网络的pid控制,pid神经网络什么原理

热门文章

  1. 多重共线性的诊断(R语言)
  2. sqr和Oracle的区别,Oracle学习笔记:a inner join b与from a,b where a.x=b.x的差异
  3. opencv摄像头拍摄视频实时边缘提取(Canny)
  4. THINKPHP 5.0.7 开启多语言模式
  5. window.open() 某些情况会被浏览器阻止弹出窗口及解决办法
  6. 基于verilog的三段式状态机
  7. JS输入银行卡 每4位 加空格分隔
  8. csgo调出参数_csgo设置参数设置怎么调出来
  9. firefly rk3399
  10. php id中 代表什么,cmiit id是什么意思