`
hanbaobao
  • 浏览: 21406 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

技术扫盲 程序数据库 (PDB) 文件

 
阅读更多

技术扫盲 程序数据库 (PDB) 文件

程序 数据库   (PDB)  文件 保存着调试和 项目 状态信息,使用这些信息 可以 对程序的调试配置进行增量 链接 。当用 /ZI 或 /工Zi 编译 C/C++ 程序时或用 /de bug   编译 Visual Basic/C#/J Script   .NET   程序时将创建 PDB 文件。 

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

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

VC 70.PDB (更笼统地说就是 VCx0.PDB,其中 x 表示 Visual C++ 的版本。)该 文件存储 各个 OBJ 文件的所有调试信息并与项目生成文件驻留在同一个目录中。 
project.PDB 该文件 存储   .exe 文件的所有调试信息。对于本机代码,它驻留在 \debug  子目录 中。对于托管代码,它驻留在 \W IN DEBUG 子目录中。 
每当创建 OBJ 文件时,C/C++ 编译器都将调试信息合并到 VCx0.PBD 中。插入的信息包括类型信息,但不包括函数 定义 等符号信息。因此,即使每个源文件都包含公共头文件(如 < window s.h>),这些头文件中的 typedef 也只存储 一次 ,而不是在每个 OBJ 文件中都存在。 

链接器将创建 project.PDB,它包含项目的 EXE 文件的调试信息。project.PDB 包含完整的调试信息(包括函数原型),而不仅仅是 VCx0.PDB 中的类型信息。这两个 PDB 文件都允许增量 更新  

Visual Studio 调试器使用由链接器直接创建的 project.PDB 文件并将此 PDB 的 绝对路径 嵌入到 EXE 或 DLL 文件中。如果调试器在该位置无法找到 PDB 文件或者如果 路径 无效(例如,如果项目被 移动 到了另一台 计算机 上),调试器将 搜索 包含 EXE 的路径,即在 解决 方案的“属性页”中指定的“符号路径”(“调试符号文件”页 ->“通用属性”文件夹)。调试器不会加载与所调试的二进制不匹配的 PDB。

分享到:
评论

相关推荐

    蛋白质数据库pdb文件格式说明

    pdb蛋白质数据库中pdb文件格式介绍,把网站上的帮助文档做成了chm的电子书形式,方便观看。

    完美解决VS2003.Net fatal error LNK1201: 写入程序数据库“.pdb”时出错--freepdb.cmd handle.exe

    完美解决VS2003.Net fatal error LNK1201: 写入程序数据库“.pdb”时出错 文末给出一个完美的解决方案和一个懒人补丁包。问题描述如下:在重新编译的时候,经常报错: fatal error LNK1201: 写入程序数据库“.pdb”...

    vc解决visual c++ error C2471 无法更新程序数据库.zip

    这个错误通常出现在编译或链接阶段,提示“无法更新程序数据库”。错误C2471是由于VC++的元数据(.pdb文件)更新过程中的问题,可能是由于磁盘空间不足、.pdb文件损坏或冲突导致的。下面我们将详细探讨这个问题,...

    PDB文件转TXT文件工具

    "PDB-TXT.exe"是一个执行程序,它的设计目的就是将PDB文件中的信息抽取出来,并转换成常见的文本格式——TXT。这样的转换过程可以帮助非开发人员或者开发人员在没有专门的调试工具时,也能查看和理解PDB文件包含的...

    Windows下MinGW生成pdb文件

    pdb文件是Microsoft的程序数据库(Program Database)文件,用于存储编译器和调试器在开发过程中产生的符号信息,包括变量名、函数名、行号等,便于调试。 在Windows下,MinGW生成pdb文件的过程如下: 1. **安装...

    PB反译工具对PDB进行反编译,非常好用

    PB反译工具是一种专门用于处理PDB(Program Database)文件的软件,它能够将PDB文件中的信息转换成可读性更强的代码或文档,帮助程序员理解和分析程序的内部结构。PDB文件是Microsoft Visual Studio在编译和链接过程...

    vs2010下dmp文件和pdb文件定位程序异常位置行号(函数内部)

    本教程将详细介绍如何在VS2010下利用.dmp和.pdb文件来定位程序异常的具体行号,甚至深入到函数内部。 首先,确保你有以下两个关键文件: 1. .dmp文件:这是程序崩溃时生成的内存转储文件,包含了进程的内存映像、...

    调试文件 pdb 符号文件下载

    pdb(Program Database)文件是微软为调试器提供的一种格式,用于存储关于编译后的程序的元数据,如源代码行信息、变量信息、函数信息等。这些信息对于调试时的断点设置、变量查看和调用堆栈跟踪至关重要。本教程将...

    freepdb_Handle

    这个错误通常意味着在编译或链接阶段,程序无法正确地写入调试信息到程序数据库(.pdb)文件中。这可能是由于多种原因,如pdb文件损坏、磁盘空间不足或者编译器设置不正确等。在给定的场景中,通过使用"freepdb_...

    编译VC2008程序时,vc90.pdb不能更新

    这个错误通常发生在编译过程中,涉及到调试信息的存储,即程序数据库(Program Database,PDB)文件无法正确更新。 首先,我们需要了解PDB文件的作用。PDB文件是Visual Studio用于存储调试信息的重要组件,包括变量...

    [by-llma] 将Materials Studio中的pdb文件转化为LAMMPS需要的data坐标文件的小程序

    标题提及的 "[by-llma] 将Materials Studio中的pdb文件转化为LAMMPS需要的data坐标文件的小程序" 是一个解决这个问题的实用工具。pdb文件是Protein Data Bank的标准格式,用于存储蛋白质、核酸等大分子的三维结构...

    vs2003运行时,出现.pdb文件错误。

    .pdb文件是Microsoft Visual Studio编译器生成的一种特殊类型的文件,全称为“Program Database”(程序数据库),主要用于存储程序的符号表和源代码行号等调试信息。在软件开发过程中,.pdb文件对于调试程序至关...

    vs2003在win7+后pdb锁住报LNK1201

    这个错误通常与程序数据库(PDB)文件有关,它是Visual Studio用于存储调试信息的特殊文件。当编译器尝试写入PDB文件时,由于各种原因,如磁盘空间不足、路径无效或权限问题,导致写入失败,从而引发此错误。 LNK...

    qt5.11.1 vs调试时需要的pdb文件

    在使用Visual Studio (VS) 调试基于Qt 5.11.1的应用程序时,经常遇到需要pdb(Program Database)文件的情况。pdb文件是微软编译器生成的一种调试信息存储格式,它包含了源代码的类型信息、符号信息以及调试期间所需...

    pdb文件转txt文件批量转换器

    标题中的“pdb文件转txt文件批量转换器”指的是一个工具或程序,它的主要功能是将 Protein Data Bank(PDB)格式的文件批量转换为纯文本(txt)格式。PDB 文件是生物信息学中用于存储蛋白质、核酸和其他生物大分子三...

    pdb文件格式-最新版

    PDB文件格式,也称为蛋白质数据银行(Protein Data Bank)文件格式,是一种用于存储...随着生物技术的发展和PDB数据库内容的不断扩充,PDB文件格式将继续作为生物大分子结构数据的标准化语言而发挥着不可替代的作用。

    vs2010下利用dmp和pdb文件分析异常行号

    PDB文件则是一个由编译器生成的数据库,存储了源代码的调试信息,如变量名、函数名、行号等,用于将二进制代码映射回源代码。 在VS2010中,当遇到一个运行时异常,我们通常会创建一个DMP文件以保存当时的程序状态。...

    标准PDB文件阅读器.RAR

    在描述中,“标准PDB文件阅读器.RAR”可能是指一个压缩文件,其中包含了一个能够读取和解析PDB文件的应用程序。RAR是一种常见的压缩文件格式,用于将多个文件打包成一个单一的文件,便于存储和传输。在这个案例中,...

    exe生成pdb符号文件工具

    exe转pdb工具,用于崩溃转储dmp文件解析,该工具运行需安装VS2015,具体需要哪个组件没深入研究,我把VS2015装上了;使用方法详见:https://github.com/rainers/cv2pdb 或 ...

Global site tag (gtag.js) - Google Analytics