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。

c语言pdb文件,VISUAL c+中的pdb文件及其作用相关推荐

  1. c语言vc98打开路径,为什么找不到Microsoft Visual StudioVC98中的CRT文件夹?

    为什么找不到Microsoft Visual StudioVC98中的CRT文件夹? executatble files: C:\Program Files\Microsoft Visual Stud ...

  2. matlab中取文件名函数,matlab从文件夹名中获取该文件夹下所图像文件名

    matlab从文件夹名中获得该文件夹下所图像文件名 function [s,nameC]=get_FileNameFromFolderPath(path) % 函数调用:[s,nameC]=get_F ...

  3. matlab p文件转码 matlab pcode文件 将matlab中的p文件转为m文件工具

    matlab p文件转码 matlab pcode文件 将matlab中的p文件转为m文件工具 源码可见,解密P ID:22600679158222577美丽小飞侠大队

  4. word2013插入excel对象报错_excel插入对象文件夹 Excel2013中插入对象文件的方法

    excel插入对象文件夹 Excel2013中插入对象文件的方法,最近到了季度汇报的时候,掌握一手excel技能在此刻显得多么重要,为了是你的excel看起来更高大上,今天教大家设置excel插入对象 ...

  5. matlab从文件夹名中获得该文件夹下所图像文件名

    function [s,nameC]=get_FileNameFromFolderPath(path) % 函数调用:[s,nameC]=get_FileNameFromFolderPath(path ...

  6. makefile obj文件路径_makefile中包含的文件的路径

    多目录,多目标的makefile问题 一.Makefile里有什么? Makefile里主要包含了五个东西:显式规则.隐晦规则.变量定义.文件指示和注释. 1.显式规则.显式规则说明了,如何生成一个或 ...

  7. linux五文件类型,Linux中常见的文件类型

    1>系统文件 文件扩展名    说明 .conf    一种配置文件.配置文件有时也使用 .cfg .lock    锁(lock)文件:用来判定程序或设备是否正在被使用 .rpm     Re ...

  8. python中csv文件操作_python中操作csv文件

    python中操作csv文件 读取csv improt csv f = csv.reader(open("文件路径","r")) for i in f: pri ...

  9. 2021-12-09把文件夹1中的与文件夹2里同名图片删除或者保存至另一个文件夹

    如果文件夹1(大)的里面包含了与文件夹2(小)的同名图片: # !/usr/bin/env python # encoding: utf-8import os import glob from PIL ...

最新文章

  1. 开源库libuuid简介及使用
  2. 移动vue项目,启动错误:Module build failed: Error: No PostCSS Config found in:
  3. Android执行shell命令
  4. wxWidgets:wxSetCursorEvent类用法
  5. MFC命令行及CCommandLineInfo类
  6. 你可能不知道的.Net Core Configuration
  7. Oracle通过邀请Weaver和Chin推动JavaFX向前发展
  8. Hadoop不适合哪些场景 哪些场景适合?
  9. sed的模式匹配用法探讨
  10. 在Ubuntu上面使用华为EC3372
  11. 软件测试 (4)Linux命令
  12. Programming Ruby 读书笔记(五)
  13. 如何在linux下配置网络桥接?-使初学者轻松远离ping不通的烦恼
  14. 根据传函求频率响应、根据实验的频率响应求传函、Nyquist图、bode图
  15. Python实现计算器四则运算小程序
  16. 「 C/C++疑难杂症 」warning: ISO C++ forbids converting a string constant to ‘CHAR*’ {aka ‘char*’} [-Wwrite
  17. 常用传感器讲解十--光传感器根据亮度安排灯光
  18. CrossFire和SLI
  19. LE PETIT PRINCE
  20. Openssl移植到ARM开发板

热门文章

  1. 人工智能2020秋季总结
  2. vue怎么和python后端交互_Vue - 与后端交互
  3. oracle计算数据环比sql,用分析函数计算环比、同比oracle
  4. 意想不到,企业资产管理如此简单
  5. flops什么意思中文_FLOPS的含义及其计算方式
  6. 近代物理系的高能物理研究现状
  7. 【每日新闻】Gartner:2018年数据中心支出增长将会放缓 | 工信部:将从四个方面推进机器人产业向高端发展应用...
  8. 有一种高级的情商,叫“不抬杠”
  9. 锤子之后:罗永浩离疯狂究竟还有多远?
  10. 分享一下6款Win7美化小工具