300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > VS“无法查找或打开PDB文件”问题

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

时间:2021-11-06 10:27:23

相关推荐

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

文章目录

前言PDB文件介绍及Bug由来解决方案

前言

在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)

运行结果

参考资料:

/view/474.html

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。