写点什么

介绍 Portable PDB

  • 2017-02-12
  • 本文字数:484 字

    阅读完需:约 2 分钟

为了调试编译的应用程序,有必要将 IL 代码或二进制的机器代码与源代码行进行匹配。虽然数据可以嵌入在应用程序中,但这会显著增加 EXE 或 DLL 文件的大小。取而代之的是,通常会使用单独的“symbols”文件。在 Windows 平台上,这被称为 PDB 或“程序数据库”。

早期 PDB 格式是为了 C 和 C++ 设计的,发展了多年以来现在已经支持.NET 了。不幸的是,这种格式一直以来都被认为是专有的,这就意味着它没有很好文档记录,而且只能使用 Windows 库读取。

有了.NET Core,就需要一个新的跨平台 PDB 库。然而,不仅仅只是转移现有的库,Microsoft 选择重写 Windows PDB 格式。新的 Portable PDB 格式删除了本地代码所需的功能,只保留了.NET 功能。通过这样做,可以简化格式,并显著减小 PDB 文件大小。

Portable PDB 格式是公开记录的,还有用来读取它的开源库。但有一些缺点:Portable PDB 格式不支持编辑及继续、FXCop 风格代码分析(Roslyn 代码分析可与运行)、性能分析工具、后编译构建步骤,如AOP、Code Contracts 或是.NET decompilers。这些局限会进行改进,但需要时间来升级工具以支持新的格式。

查看英文原文 Introducing Portable PDB

2017-02-12 18:001761
用户头像

发布了 218 篇内容, 共 71.9 次阅读, 收获喜欢 76 次。

关注

评论

发布
暂无评论
发现更多内容

linux之autojump命令

入门小站

Linux

CleanMyMac有没有需要安装电脑?

茶色酒

CleanMyMacX

PyTorch 开发环境搭建

Emperor_LawD

PyTorch 5月月更

STM32+华为云IOT设计的动态密码锁

DS小龙哥

5月月更

【愚公系列】2022年05月 二十三种设计模式(六)-适配器模式(Adapter Pattern)

愚公搬代码

5月月更

[Day37]-[二叉树]- 找树左下角的值

方勇(gopher)

LeetCode 二叉树 数据结构算法

LabVIEW串口调试助手

不脱发的程序猿

LabVIEW 串口通信 数据通信 串口调试助手 VISA

MathType2022永久无限试用脚本程序

茶色酒

MathType

CentOS 8及以上版本配置IP的方法,你 get 了吗

伍工

Linux 网络

SAP 电商云启用 Enterprise Product Development Visualization Integration 的配置步骤

汪子熙

angular 电商 SAP commerce 5月月更

LabVIEW串口通信

不脱发的程序猿

LabVIEW 串口通信 数据通信

Nginx 和 Nginx Plus 的区别

HoneyMoose

【Python】新华字典(bushi

謓泽

5月月更

数据大屏,仅仅是数据展示吗?

葡萄城技术团队

数据分析 BI 数据可视化 数据大屏 BI分析

轻量迅捷时代,Vite 与Webpack 谁赢谁输

葡萄城技术团队

前端 vite webpack 轮子

LabVIEW应用程序后台运行

不脱发的程序猿

LabVIEW

跟着动画学 Go 数据结构之二叉树

宇宙之一粟

数据结构 二叉树 Go 语言 5月月更

2022 开源之夏 | Serverless Devs 陪你“变得更强”

阿里巴巴云原生

阿里云 云原生 Serverless Devs 开源之夏

位运算——Java语言描述

工程师日月

位运算 java 5月月更

查找端口占用并关闭进程(windows)

liuzhen007

端口占用 5月月更

MathType全新免费版数学公式编辑器

茶色酒

MathType

LabVIEW十六进制和字符类型转换

不脱发的程序猿

LabVIEW 进制转换

消息队列Kafka「检索组件」重磅上线!

阿里巴巴云原生

阿里云 云原生 消息队列Kafka

成功转行测试,分享一下自己的经验【思维导图】初级/中级/高级测试工程师会哪些...

伤心的辣条

Python 程序人生 软件测试 自动化测试 测试开发

六、高可用之流控降级

穿过生命散发芬芳

5月月更 高可用设计

nginx配置系列(九)nginx中的防盗链

乌龟哥哥

5月月更

【高并发】ThreadLocal学会了这些,你也能和面试官扯皮了!

冰河

并发编程 多线程 协程 异步编程 精通高并发系列

在线URL编码加密工具

入门小站

工具

Django 如何获取 Model 字段列表?

AlwaysBeta

django

《对线面试官》Java泛型

Java3y

Java 程序员 编程语言 java 5月月更

面试突击45:为什么要用读写锁?它有什么优点?

王磊

Java 面试

介绍Portable PDB_.NET_Jonathan Allen_InfoQ精选文章