PDB是什么文件?很多开发人员发现在生成类库项目时除了生成dll文件外,还会生成一个同名的pdb文件,它是一个程序数据库文件,保存着调试和项目状态信息,使用这些信息可以对程序的调试配置进行增量链接。 理解:pdb文件包含了编译后程序指向源代码的位置信息,用于调试的时候定位到源代码,主要是用来方便调试的。如果你对pdb是什么文件还不是很清楚,可以阅读下面的文章,还有pdb数据库文件怎么打开。

pdb是什么文件?

大部分的开发人员应该都知道PDB文件是用来帮助软件的调试的。但是他究竟是如何工作的呢,我们可能并不熟悉。本文描述了PDB文件的存储和内容。同时还描 述了debugger如何找到binay相应的PDB文件,以及debugger如何找到与binay对应的源代码文件。本文适用于所有的Native和 Managed的开发人员。

在开始前,我们先定义2个术语:private build, 用来表示在开发人员自己机器上生成的build;public build,表示在公用的build机器上生成的build。private build相对来说比较简单,因为PDB和binay在相同的地方,通常地我们遇到的问题都是关于public build。

所有的的开发人员需要知道的最重要的事情是”PDB文件跟源代码同样的重要“, 没有PDB文件,你甚至不能debugging。对于public build,需要symbol server存储所有的PDB,然后当用户报告错误的时候,debugger才可以自动地找到binay相应的PDB文件, visual studio 和 windbg都知道如何访问symbol server。在将PDB和binay存储到symbol server前,还需要对PDB运行进行source indexing, source indexing的作用是将PDB和source关联起来。

接下来的部分假设有已经设置好了symbol server和source server indexing。TFS2010中可以很简单地完成对一个新的build的source indexing 和 symbol server copying。

pdb数据库文件怎么打开?

正式开始PDB的内容,PDB不是公开的文件格式,但是Microsoft提供了API来帮助从PDB中获取数据。

Native C++ PDB包含了如下的信息:

* public,private 和static函数地址;

* 全局变量的名字和地址;

* 参数和局部变量的名字和在堆栈的偏移量;

* class,structure 和数据的类型定义;

* Frame Pointer Omission 数据,用来在x86上的native堆栈的遍历;

* 源代码文件的名字和行数;

.NET PDB只包含了2部分信息:

* 源代码文件名字和行数;

* 和局部变量的名字;

* 所有的其他的数据都已经包含在了.NET Metadata中了;

如何在生成类库项目时不生成pdb文件?

打开类库项目属性页面→切换到生成选项卡→点击高级按钮→将调试信息一项设置为none

以上就是关于PDB文件的一些相关信息了,希望以上教程对大家有帮助。

分享到:

mysql的pdb文件在哪里_pdb是什么文件?pdb数据库文件怎么打开?相关推荐

  1. android不能访问数据库文件,android下访问已存在的sqlite数据库文件的办法

    问题来源:android下的sqlite数据库一般都是单机的,当一个应用中数据库的数据多的时候,每换一个机子都重新配置一下数据库中所有数据显然是浪费时间的,所以最好的办法就是可以访问一个已经存在的数据 ...

  2. oracle .dbf文件过大_学习这篇Oracle数据库文件坏块损坏的恢复方法,拓展你的知识面...

    一.Oracle数据库系统简介: ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结 ...

  3. 人事管理信息系统mysql代码_java人事管理系统源代码---毕业实习(已加入数据库文件)...

    采用MVC模式编写的人事管理系统,我的毕业实习,今天检查,今天开源 项目截图 java build path Project Facets hr.sql/* MySQL Data Transfer S ...

  4. mfc mysql delete_MFC中简单的数据库文件操作(添加,修改,查找,删除)

    要求:新建一个数据库文件(微软的access),里面包括学生的信息学号(ID),姓名(Name),英语成绩(English),在Visual C++ 6.0里新建MFC项目,新建学生记录类(Stude ...

  5. mysql chm 文档_最简单,最实用的数据库CHM文档生成工具——DBCHM

    推荐文章 1.SQLite: SELECT 'AA' || 'BB' || 'CC'; 2.MySQL: SELECT CONCAT('AA', 'BB', ' 推荐文章 QT += sql QSql ...

  6. 1-2 通过SQL管理数据库文件

    1-2  通过SQL管理数据库文件 u      掌握数据库文件的类型,学习在管理平台下建立数据库文件和文件组 u      掌握数据库文件及日志文件的建立操纵语句 u      掌握对数据库文件的修 ...

  7. 服务器数据库2008怎么备份数据库文件,怎么备份SQL Server2008数据库

    在使用SQL Server 2008服务器的时候,我们需要定时的备份数据库来防止数据的丢失,下面学习啦小编为大家介绍备份SQL Server 2008数据库的方法. 备份SQL Server 2008 ...

  8. sql azure 语法_Azure Kubernetes服务(AKS)–管理SQL Server数据库文件

    sql azure 语法 In this article, we will review on managing database files of SQL Server running on Azu ...

  9. 【中亦安图】关于数据库文件损坏风险的提醒(3)

    第一章 技术人生系列 · 我和数据中心的故事(第三期)-中亦科技关于数据库文件损坏风险的提醒 中亦安图 | 2016-01-19 21:38 前言 小y最近处理了几起Oracle数据库文件损坏的cas ...

  10. sqlite数据库文件提示损坏修复方法

    第1章 说明    1 1 下载SQLite Tools    1 2 运行    2 注意:为了方便,可把要修复的数据库文件直接放到sqlite3.exe路径下然后运行sqlite3.exe就不用输 ...

最新文章

  1. [Linux] 批量添加用户
  2. 三方登录(微博为例)
  3. Sublime text3关闭自动更新(hosts屏蔽)
  4. 【Android】 常用的Intent
  5. Java集合容器系列04-HashMap
  6. 【tomcat】tomcat部署项目实验
  7. 用OPENCV视觉解数独
  8. PHP怎么做一个加法口诀,神奇的手指速算口诀,100以内的加减法一分钟学会
  9. SSL 1613——最短路径问题(最短路)
  10. Jmeter中的变量(三)
  11. SSHnbsp;整合-nbsp;6nbsp;-nbsp;service_serviceImp…
  12. 贾老板大秀未来机器人之舞,场面有点不可描述(动图+视频)
  13. OpenPilot 0.3.2 发布,开源自动驾驶技术
  14. linux 权限加号是,请教:drwxrwxr-x   什么权限后面有个加号,代表什么意思
  15. 中国智能座舱行业发展前景展望与投资战略规划研究报告2022年版
  16. PCB设计流程(精简)
  17. 计算机表格平均分用函数怎么算,总结:如何使用公式计算Excel2013表中合并单元格的平均值...
  18. win7文件夹加密_小编还原win7系统文件夹加密码的步骤
  19. 无线路由器连接有线路由器
  20. hmailserver的反垃圾邮件功能

热门文章

  1. 腾达ap设置说明_腾达(Tenda)路由器如何设置AP模式
  2. HTTP协议-报文解析
  3. 视频流(自适应算法)
  4. linux鼠标指针隐藏,触摸屏鼠标指针隐藏消失方法
  5. [竞品分析] 猿辅导-K12在线教育产品
  6. latex怎么看论文字数_如何确定latex文档字数
  7. C++和VC++学习方法
  8. 三角形和矩形傅里叶变换_第3章傅立叶变换.doc
  9. 一则“亿万富翁给妻子捐5亿美元科研经费”的八卦,引发科研筹钱难的思考
  10. python人脸融合_使用 python 进行 面部合成