首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是“有限调试信息”?(完整的“调试信息”生成巨大的EXE文件)

什么是“有限调试信息”?(完整的“调试信息”生成巨大的EXE文件)
EN

Stack Overflow用户
提问于 2015-01-13 20:52:57
回答 1查看 1.1K关注 0票数 6

我最近安装了德尔福XE7。当我第一次编译一个旧的应用程序时,当我看到EXE的大小增加到10 my时,我的下巴掉了下来!

在“项目选项”中,我发现将“Debug信息”设置为“Limited Debug Information”可以将EXE大小降低到非常接近Delphi XE生成的EXE。也许在德尔福XE7下,“有限调试信息”是否等同于德尔福XE的“调试信息”,因为它会导致相同的EXE大小?

那么,为什么完全的“调试信息”使得EXE如此之大(与XE相比)?我无法用有限的信息编译EXE (我猜),因为我想完全访问调试工具( EurekaLog也需要它)。

Embarcadero的文档没有提到“有限”和完全调试信息之间的区别。

EurekaLog文档是一个旧版本的德尔菲,所以它没有明确说明我是否可以使用新的选项(仁慈)‘有限调试信息’或完整的调试信息。我将不得不做实验。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-14 04:02:20

“有限调试信息”是一个只影响Android目标编译器的选项。但是,由于所有编译器都共享相同的接口,因此每个目标都会出现此选项。它只适用于每个单独的对象(.o)文件中包含多少调试信息。对于Android (和iOS),调试信息格式是矮小的。侏儒是一种非常详细的格式,可以包含关于给定单元中所有类型的高度详细的结构类型信息,以及来自给定单元“使用”的所有类型的高度详细的结构类型信息。在“有限调试信息”下,不会生成所有已使用单元的类型信息。这可能意味着某些字段和局部变量在调试时可能无法检查。

至于调试信息是否包含在最终的可执行文件中,这是由链接器选项而不是编译器选项控制的。链接器将链接任何可用的调试信息。如果选择为Android和“”构建,那么最终的图像将有更多的信息和更大的信息。

现在我将假设您是针对Windows (您实际上没有声明您是,但我将在这里使用我的灵力),在这种情况下,“有限调试信息”和“调试信息”是同一回事。在Windows下,调试格式称为“巨型”。你能说“讽刺”吗?侏儒是一个非常冗长的格式,而Embarcadero(Borland最初的)自己的巨型格式更紧凑。规模的增加只能来自增加的运行时功能,而且可能是由于更多地使用泛型。

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27931285

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档