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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • form 表单提交后,使页面不跳转[通俗易懂]

    form表单提交数据,往往会刷新页面,数据提交后会跳转到其他页面如果不需要刷新页面时,可以通过ifame实现无刷新。在form表单下定义一个ifame将form的target属性指向iframe的name属性,这样就实现了不刷新页面的form提交。示例:<formaction="url"enctype="multipart/form-data"targe…

    2022年4月16日
    919
  • java飞机大战_java飞机大战代码步骤解析

    java飞机大战_java飞机大战代码步骤解析一、简单介绍这是一个功能相对全的JAVA版坦克大战,界面绘制是通过JAVA的图形化用户界面完成的,包括了菜单界面和游戏界面。其中菜单界面可以供玩家选择重新开始游戏、暂停、继续、是否播放背景音乐、帮助等操作;游戏界面绘制了坦克、河流、草地、鹰碉堡等经典坦克场景,玩家在游戏界面操作坦克开始对战。本游戏使用的主要技术有Swing编程、面向对象编程、多线程编程。本…

    2022年8月10日
    5
  • Photoshop CC 2019选区的基本操作(快捷键)

    Photoshop CC 2019选区的基本操作(快捷键)1.全选与反选ctrl+A2.取消选择和重新选择取消:ctrl+D重新选择:ctrl+shift+D3.运算选区shift+拖动鼠标,添加到选区alt+拖动鼠标,从选区减去alt+shift+拖动,与选区交叉4.移动选区鼠标到选区边缘即可移动…

    2022年6月16日
    44
  • harris角点检测_那就更详细一点吧

    harris角点检测_那就更详细一点吧1.不同类型的角点在现实世界中,角点对应于物体的拐角,道路的十字路口、丁字路口等。从图像分析的角度来定义角点可以有以下两种定义:角点可以是两个边缘的角点; 角点是邻域内具有两个主方向的特征点;前者往往需要对图像边缘进行编码,这在很大程度上依赖于图像的分割与边缘提取,具有相当大的难度和计算量,且一旦待检测目标局部发生变化,很可能导致操作的失败。早期主要有Rosenfeld和Freema…

    2022年10月9日
    0
  • python导入excel数据画散点图_excel折线图怎么做一条线

    python导入excel数据画散点图_excel折线图怎么做一条线目的:读取excel文件中的数据,绘制折线图、散点图安装环境:由于我使用的是Anaconda集成的环境所以不用安装模块,直接导入就行importpandasaspdimportmatplotlib.pyplotasplt绘制简单折线pandas操作Excel表单数据准备,有一个Excel文件:lemon.xlsx有两个表单,表单名分别为:Python以及student,Python的表单数据如下所示:student的表单数据如下所示:…

    2022年9月26日
    0
  • linux jdk安装步骤(下载安装jdk)

    1.linux虚拟机需要先连接互联网2.命令行下载jdk安装包3.jdk安装包解压安装及环境配置4.直接在线安装jdk并配置运行环境。1.查看yum库中都有哪些jdk版本(暂时只发现了openjdk)[root@localhost~]#yumsearchjava|grepjdk2.选择版本,进行安装//选择1.7版本进行安装[root@localhost~]#yuminstalljava-1.7.0-openjdk[root@localhost~]#yumins

    2022年4月11日
    73

发表回复

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

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