写点什么

介绍 Portable PDB

2017 年 2 月 12 日

为了调试编译的应用程序,有必要将 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 年 2 月 12 日 18:00971
用户头像

发布了 217 篇内容, 共 52.6 次阅读, 收获喜欢 70 次。

关注

评论

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

学习笔记丨结构体中的内存管理

Liuchengz.

c Linux 学习

一个在交流群里讨论过两轮的问题,答案竟然跟一个 PEP 有关

Python猫

Python 编程

Centos7 mongodb安装全攻略

红泥小壶

mongodb

全场景智慧:新工业革命必须拥抱的晨曦

脑极体

ARTS Week10

丽子

Python 为什么没有 void 关键字?

Python猫

Python 编程

Python 函数为什么会默认返回 None?

Python猫

Python 编程

Python 为什么要在 18 年前引入布尔类型?且与 C、C++ 和 Java 都不同?

Python猫

Python 编程

在5G智慧园区的“保龄球道”上,目标全垒打的征途

脑极体

oeasy教您玩转linux010204-figlet

o

Docker 搭建 Redis Cluster 集群环境

哈喽沃德先生

redis Docker 容器 集群 redis cluster

如何进行冥想?给大脑来场清新的SPA!

金龟换酒

自我管理 App 冥想

Python 为什么能支持任意的真值判断?

Python猫

Python 编程

有奖征文火热开赛,万元大奖等你来拿,准备好了吗?

InfoQ写作平台官方

程序员 开发者 音视频 随笔杂谈 RTC征文大赛

芯片破壁者(十五):仙童半导体和“八叛逆”所缔造的“硅谷模式”

脑极体

Flink保存点-17

小知识点

scala 大数据 flink

实战中学习浏览器工作原理 — 之 HTTP 请求与解析

三钻

CSS Java 前端 浏览器

从每秒6000写请求谈起

架构师修行之路

程序员 架构师 高并发系统设计

持续集成有什么好处?快来看鸭

清菡

jenkins

LeetCode题解:84. 柱状图中最大的矩形,循环+双指针暴力,JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

深度解读:Apache DolphinScheduler 新架构与特性,性能提升2~3倍

海豚调度

开源 大数据任务调度 工作流调度 开源社区

北京首台区块链政务终端亮相 一键“拉取”链上数据

CECBC区块链专委会

区块链技术

区块链+公共安全 大有可为

CECBC区块链专委会

区块链 安全

缓存与数据库一致性问题深度剖析

Zhendong

数据库 缓存 秒杀系统

Apache Pulsar 8 月月报:里程碑一个接一个

Apache Pulsar

大数据 云原生 Apache Pulsar 消息系统 消息中间件

macos主流工作开发套件指南

久违

macos Docker 前端 自动化部署

Python 中的数字到底是什么?

Python猫

Python 翻译 PEP

经济适用的企业内外网互动直播方案

fumingwang

音视频 直播 视频会议 企业应用

dubbo应用级服务发现初体验

捉虫大师

dubbo 注册中心

凤凰交易所 全球首个多元化生态交易平台震撼来袭

InfoQ_967a83c6d0d7

LeetCode题解:239. 滑动窗口最大值,双循环暴力,JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

介绍Portable PDB-InfoQ