c语言pdb文件,VISUAL c+中的pdb文件及其作用
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文件及其作用相关推荐
- c语言vc98打开路径,为什么找不到Microsoft Visual StudioVC98中的CRT文件夹?
为什么找不到Microsoft Visual StudioVC98中的CRT文件夹? executatble files: C:\Program Files\Microsoft Visual Stud ...
- matlab中取文件名函数,matlab从文件夹名中获取该文件夹下所图像文件名
matlab从文件夹名中获得该文件夹下所图像文件名 function [s,nameC]=get_FileNameFromFolderPath(path) % 函数调用:[s,nameC]=get_F ...
- matlab p文件转码 matlab pcode文件 将matlab中的p文件转为m文件工具
matlab p文件转码 matlab pcode文件 将matlab中的p文件转为m文件工具 源码可见,解密P ID:22600679158222577美丽小飞侠大队
- word2013插入excel对象报错_excel插入对象文件夹 Excel2013中插入对象文件的方法
excel插入对象文件夹 Excel2013中插入对象文件的方法,最近到了季度汇报的时候,掌握一手excel技能在此刻显得多么重要,为了是你的excel看起来更高大上,今天教大家设置excel插入对象 ...
- matlab从文件夹名中获得该文件夹下所图像文件名
function [s,nameC]=get_FileNameFromFolderPath(path) % 函数调用:[s,nameC]=get_FileNameFromFolderPath(path ...
- makefile obj文件路径_makefile中包含的文件的路径
多目录,多目标的makefile问题 一.Makefile里有什么? Makefile里主要包含了五个东西:显式规则.隐晦规则.变量定义.文件指示和注释. 1.显式规则.显式规则说明了,如何生成一个或 ...
- linux五文件类型,Linux中常见的文件类型
1>系统文件 文件扩展名 说明 .conf 一种配置文件.配置文件有时也使用 .cfg .lock 锁(lock)文件:用来判定程序或设备是否正在被使用 .rpm Re ...
- python中csv文件操作_python中操作csv文件
python中操作csv文件 读取csv improt csv f = csv.reader(open("文件路径","r")) for i in f: pri ...
- 2021-12-09把文件夹1中的与文件夹2里同名图片删除或者保存至另一个文件夹
如果文件夹1(大)的里面包含了与文件夹2(小)的同名图片: # !/usr/bin/env python # encoding: utf-8import os import glob from PIL ...
最新文章
- 开源库libuuid简介及使用
- 移动vue项目,启动错误:Module build failed: Error: No PostCSS Config found in:
- Android执行shell命令
- wxWidgets:wxSetCursorEvent类用法
- MFC命令行及CCommandLineInfo类
- 你可能不知道的.Net Core Configuration
- Oracle通过邀请Weaver和Chin推动JavaFX向前发展
- Hadoop不适合哪些场景 哪些场景适合?
- sed的模式匹配用法探讨
- 在Ubuntu上面使用华为EC3372
- 软件测试 (4)Linux命令
- Programming Ruby 读书笔记(五)
- 如何在linux下配置网络桥接?-使初学者轻松远离ping不通的烦恼
- 根据传函求频率响应、根据实验的频率响应求传函、Nyquist图、bode图
- Python实现计算器四则运算小程序
- 「 C/C++疑难杂症 」warning: ISO C++ forbids converting a string constant to ‘CHAR*’ {aka ‘char*’} [-Wwrite
- 常用传感器讲解十--光传感器根据亮度安排灯光
- CrossFire和SLI
- LE PETIT PRINCE
- Openssl移植到ARM开发板
热门文章
- 人工智能2020秋季总结
- vue怎么和python后端交互_Vue - 与后端交互
- oracle计算数据环比sql,用分析函数计算环比、同比oracle
- 意想不到,企业资产管理如此简单
- flops什么意思中文_FLOPS的含义及其计算方式
- 近代物理系的高能物理研究现状
- 【每日新闻】Gartner:2018年数据中心支出增长将会放缓 | 工信部:将从四个方面推进机器人产业向高端发展应用...
- 有一种高级的情商,叫“不抬杠”
- 锤子之后:罗永浩离疯狂究竟还有多远?
- 分享一下6款Win7美化小工具