c语言pdb文件,VISUAL c+中的pdb文件及其作用「建议收藏」

c语言pdb文件,VISUAL c+中的pdb文件及其作用「建议收藏」VISUALc+中的pdb文件及其作用程序数据库(PDB)文件保存着调试和项目状态信息,使用这些信息可以对程序的调试配置进行增量链接。当以/ZI或/Zi(用于C/C++)生成时,将创建一个PDB文件。在VisualC++中,/Fd选项用于命名由编译器创建的PDB文件。当使用向导在VisualStudio中创建项目时,/Fd选项被设置为创建一个名为projec…

大家好,又见面了,我是你们的朋友全栈君。

VISUAL c+中的pdb文件及其作用

程序数据库 (PDB) 文件保存着调试和项目状态信息,使用这些信息可以对程序的调试配置进行增量链接。当以 /ZI 或 /Zi(用于 C/C++)生成时,将创建一个 PDB 文件。

在 Visual C++ 中,/Fd 选项用于命名由编译器创建的 PDB 文件。当使用向导在 Visual Studio 中创建项目时,/Fd 选项被设置为创建一个名为 project.PDB 的 PDB。

如果使用生成文件创建 C/C++ 应用程序,并指定 /ZI 或 /Zi 而不指定 /Fd 时,则最终将生成两个 PDB 文件:

VC80.PDB (更笼统地说就是 VCx0.PDB,其中 x 表示 Visual C++ 的版本。)该文件存储各个 OBJ 文件的所有调试信息并与项目生成文件驻留在同一个目录中。

project.PDB 该文件存储 .exe 文件的所有调试信息。对于本机 C/C++代码,它驻留在 \debug 子目录中。对于托管代码,它驻留在 \WINDEBUG 子目录中。

每当创建 OBJ 文件时,C/C++ 编译器都将调试信息合并到 VCx0.PDB 中。插入的信息包括类型信息,但不包括函数定义等符号信息。因此,即使每个源文件都包含公共头文件(如 ),这些头文件中的 typedef 也只存储一次,而不是在每个 OBJ 文件中都存在。

链接器将创建 project.PDB,它包含项目的 EXE 文件的调试信息。project.PDB 文件包含完整的调试信息(包括函数原型),而不仅仅是在 VCx0.PDB 中找到的类型信息。这两个 PDB 文件都允许增量更新。链接器还在其创建的 .exe 或 .dll 文件中嵌入 .pdb 文件的路径。

Visual Studio 调试器使用 EXE 或 DLL 文件中的 PDB 路径查找 project.PDB 文件。如果调试器在该位置无法找到 PDB 文件或者如果路径无效(例如,如果项目被移动到了另一台计算机上),调试器将搜索包含 EXE 的路径,即在“选项”对话框(“调试”文件夹,“符号”节点)中指定的符号路径。调试器不会加载与所调试的二进制不匹配的 PDB。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/137256.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Android界面设计适配不同屏幕的尺寸和密度解读[通俗易懂]

    Android界面设计适配不同屏幕的尺寸和密度解读[通俗易懂]Android是运行在各种提供不同的屏幕尺寸和密度的设备。Android系统提供跨设备的统一开发环境和处理大部分的工作,以调整每个应用程序的用户界面,以在其上显示的画面。 同时,该系统提供了API,允许您控制您的应用程序的UI特定的屏幕尺寸和密度,以优化你的用户界面设计,不同的屏幕配置。作为设计师也要最大程度地为所有设备的体现良好的用户体验或是方便使用阅读,而不是简单地拉伸以适应屏幕上的设备。

    2022年6月17日
    27
  • 国外无限php空间,关于无限空间和美国PHP主机不限制流量存储的认知[通俗易懂]

    国外无限php空间,关于无限空间和美国PHP主机不限制流量存储的认知[通俗易懂]虽然我们看到很多的主机商都从原来的虚拟主机转变成如今较大青睐的云服务器、独立服务器产品。但是还是有很多用户,尤其是外贸网站用户,包括有些习惯使用虚拟主机的网友会选择虚拟主机。我们在选择虚拟主机的时候,看到有商家的套餐的配置,会看到有对于硬件配置限制或者不限制的无限空间。其实美国PHP主机不限制流量或者不限制存储空间的做法很早就已经有过,比如我们早年熟悉的Bluehost、JustHost等主机商几…

    2022年9月21日
    0
  • Spring Boot 打的包为什么能直接运行?

    Spring Boot 提供了一个插件 spring-boot-maven-plugin 用于把程序打包成一个可执行的jar包。 在pom文件里加入这个插件即可: <buil…

    2021年6月22日
    118
  • Matlab保存图片的几种方法「建议收藏」

    Matlab保存图片的几种方法「建议收藏」写在前面:本文系作者原创,转载或引用请注明文章出处,多谢!Matlab中保存图片有很多函数可以用到,本文将简单总结三种保存图像的方法,其他的日后补充。1、保存一幅经过处理的图像,又不希望损失其分辨率:采用imwrite()函数例:想保存图像img,可以写:imwrite(img,adressString);%adressString表示输出地址如果希望同时输出多张图片,可以这样定义string:adressString=[‘D:\picture\’sprintf(‘%0.4d’,nu

    2022年9月13日
    0
  • Ubuntu 忘记root密码_ubuntu怎么获取root权限

    Ubuntu 忘记root密码_ubuntu怎么获取root权限Ubuntu14.04中root密码忘记解决方法[转载+17.04亲测可用]Ubuntu14.04中root密码忘记解决方法Ubuntu 14.04中root密码忘记解决方法方法一:如果用户具有sudo权限,那么直接可以运行如下命令:#sudosuroot#passwd#更改密码或者直接运行sudopasswdroot命令就可以直接更改root密码…

    2022年10月29日
    0
  • DELL Eq PS4000服务器数据恢复过程/数据恢复案例

    DELL Eq PS4000服务器数据恢复过程/数据恢复案例DELLEqualLogicPS4000是戴尔为远程或分支办公室、部门和中小企业存储部署提供的存储服务器,可以提供企业级自动化、智能化性能服务,价格合理,管理和部署相对便捷,更适合中小企业及办公室需求,是中型企业级存储的起点…

    2022年6月15日
    27

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号