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

2023-11-26

我最近安装了Delphi XE7。当我第一次编译一个旧应用程序时,当我看到 EXE 的大小增加了 10MB 时,我惊得下巴都掉了!

在“项目选项”中,我发现将“调试信息”设置为“有限调试信息”会将 EXE 大小减小到非常接近 Delphi XE 生成的 EXE 大小。 也许在 Delphi XE7 下“有限调试信息”相当于 Delphi XE 中的“调试信息”,因为它产生相同的 EXE 大小?

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

EurekaLog 文档适用于旧版本的 Delphi,因此它没有明确说明我是否可以使用新选项(仁慈的)“有限调试信息”或完整调试信息。我必须进行实验。


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

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

现在我假设你的目标是Windows(你实际上并没有声明你是这样,但我会在这里使用我的心灵力量),在这种情况下,“有限调试信息”和“调试信息”是相同的事物。在 Windows 下,调试格式称为“GIANT”。你能说“讽刺”吗? DWARF 是一种极其冗长的格式,而 Embarcadero(Borland 最初的)自己的 GIANT 格式则更为紧凑。大小的增加只能来自于添加的运行时功能,并且可能来自更多地使用泛型。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • 如何添加资源并使用它们

    在我的应用程序中 我想添加 2 个图像作为资源 我想使用这些图像 当我在应用程序中单击 是 按钮时 第一张图像将被设置为壁纸 当我在应用程序中单击 否 按钮时 第二张图像将被设置为桌面壁纸 提前致谢 regards 最简单的方法是创建一个文
  • VCL.位图到 FMX.位图

    我在网上找到了这段代码 但 FMX Bitmap 没有扫描线 是否可以以某种方式将 VCL TBitmap 复制或绘制到 FMX Bitmap IFDEF MSWINDOWS type TBitmap FMX Types TBitmap T
  • 加载 Jpg/Gif/Bitmap 并转换为 Bitmap

    我必须从 XML 文件加载图像 XML 文件中没有关于图像是否为 JPG GIF BMP 的信息 加载图像后 我需要将其转换为位图 有谁知道如何在不知道实际文件格式的情况下将图像转换为位图 我正在使用 Delphi 2007 2009 谢谢
  • 如何在 Delphi REST 中发布内容类型为“multipart/form-data”的数据?

    我正在尝试使用 REST API 发送请求multipart form data作为内容类型 我总是收到 HTTP 1 1 500 Internal Error 作为响应 我尝试向需要的方法发送请求application x www for
  • 运行delphi客户端自动化程序后excel.exe保持加载状态的原因是什么?

    我编写了一个 Delphi 程序 该程序从单个 XLS 文件的多个不同电子表格中提取数据并将其合并到文本文件中以供以后处理 这是德尔福7console程序 最相关的代码片段的摘录将向您表明 显然 我的程序表现得相当好 或者至少达到了它需要的
  • 使用Delphi检查HTML代码中是否有对象属性值

    如何使用Delphi检查HTML代码中是否有输入对象属性值 there isn t value attribute
  • 如何根据输入的内容过滤组合框的内容?

    我们有一个包含 100 多个项目的组合框 当我们在组合框中输入字符时 我们想要过滤掉项目 例如 如果我们输入 ac 并单击下拉选项 那么我们希望它仅显示以 ac 开头的项目 我怎样才能做到这一点 也许您会更喜欢使用操作系统内置的自动完成功能
  • 使用 OLE 和 Delphi 提高 Word 文档中搜索替换的性能

    经过一些实验 我最终得到了以下代码来在 MSWord 中执行搜索和替换 此代码在页眉和页脚中也能完美运行 包括首页或奇数 偶数页的页眉和 或页脚不同的情况 问题是我需要打电话MSWordSearchAndReplaceInAllDocume
  • Delphi - 在修复 VCL 错误时,单元 x 是用不同版本的 x 编译的

    我正在使用 Delphi XE6 并在我的项目中使用 Datasnap 和 JSON 我想纠正 VCL 单元 System JSON pas 在 TJSONString ToString 函数中 中的一个错误 它应该转义反斜杠字符和引号 为
  • 如何仅使用 TADOQuery 组件将图像插入数据库

    我有一个简单的基本问题 我正在尝试使用将图像插入数据库Insert与其他列值的语句也使用TADOQuery成分 由于代码已经由某人编写 因此我想在此处放置一些虚拟示例代码 以供您澄清相应的步骤 请注意 这可以正常工作TQuery组件 因为我
  • 不断断点?如何去除它们?

    我下载了一个用Delphi 2009制作的项目 这也是我使用的 但是有一个断点我无法删除 如果我尝试删除它 它会在程序执行后再次执行 我在其他调试器中遇到了这样的事情 称为硬件断点 但这并不重要 如何删除断点 EDIT Article ht
  • 石和磅的格式正确吗?

    我有一个图表 用于显示重量 以英石和磅 lbs 为单位 该图表由记录中的数据填充 对于权重 数据类型为 Double 记录数据是在运行时编辑的 我需要知道一种正确格式化输入数据的方法 为了更好地理解 首先看一下这些示例值 它们表示为石和磅
  • TObjectList.Contains 导致 Delphi 2009 中的访问冲突

    在 Delphi 2009 中 到目前为止 我在泛型方面没有遇到大问题 使用 Generics Collections 列表 没有特殊的泛型功能 现在我发现这段代码会在访问的行中导致AVMyList Contains 如果我声明 TMyLi
  • 如何更改 TPageControl 上标签的方向?

    我是 Delphi 的新手 再次强调 我在 1994 年就使用过 Delphi 我现在有 Delphi 2009 Pro 来自Java 我发现对象继承非常晦涩 我的用户想要选项卡位于左侧的选项卡式页面 但是 TPageControl 不允许
  • Delphi 5 中的 Oracle 数据库连接

    我正在使用 Delphi 5 版本 我想连接到 Oracle 数据库 我有 TDatabase 组件 我不知道如何通过 Delphi 连接到数据库 请提供连接数据库的步骤 谢谢 The TDatabase http docwiki emba
  • 如何调试仅在应用程序关闭时发生的崩溃? (德尔福)

    因此 经过最近的一些更改 我们发现我们最古老的应用程序之一有时会在关闭时崩溃 这会以 运行时错误 216 消息的形式或来自 Windows 错误报告的消息的形式表明应用程序已停止工作 该应用程序已经发出OutputDebugString 每
  • Delphi 6 命令行编译:无 DCU

    当对 dpr 文件使用 dcc32 时 它会生成一个 dll 但不会生成 dcu 项目级别 cfg 使用 N 开关设置路径 但指定的目录中没有任何内容 当 E 开关正在工作时 它必须看到 cfg 我尝试在调用 dcc32 之前对 dpr 文
  • EOutOfMemory 使用 Delphi 创建大型 XML

    我正在使用 Delphi 从关系数据库中的数据创建 XML 文档 它在小数据集上测试得很好 但是当我尝试将数据集的大小扩展到生产级别时 它最终在节点创建期间因 EOutOfMemory 异常而崩溃 我正在使用放在表单上的 TXMLDocum
  • 任意通用列表的通配符

    我有一个类 MyClass 它不是通用的 包含任意 TList 并对其执行某些操作 我希望用通用 TList 替换 TList 但 MyClass 必须保持非通用 由于 Delphi 是不变的 这样的事情是行不通的 list1 TList
  • delphi THashSHA2 在大文件上返回错误的 SHA256

    Data Cloud CloudAPI pas has class function TCloudSHA256Authentication GetStreamToHashSHA256Hex const Content TStream str

随机推荐

  • 在 Spring Boot 中创建自定义 Jasypt PropertySource

    我正在使用 Spring Boot 创建一个访问数据库的简单 Web 应用程序 我通过设置来利用数据源的自动配置功能spring datasource 属性在application properties 一切都非常顺利 而且速度非常快 干得
  • 在 Libgdx 屏幕之间切换

    我仍在研究这个 libgdx 项目 并且正在尝试找出将屏幕更改为游戏屏幕的最佳方法 现在 当单击按钮时 我需要它转换到游戏屏幕 我已经看到了一些扩展游戏类的实现 但我不确定这里最好的方法是什么 这是主要的应用程序类 public class
  • Bootstrap 模式表单提交后不会关闭

    我需要做的是显示一个弹出窗口 向我的数据库添加一条新记录 我使用 bootstrap 3 我喜欢它 因为我没有使用一行 jquery 而且我有非常好的形式 显然它们是基于 jquery 我正在通过 ajax 验证我的表单 但现在的问题是我的
  • 为什么 .NET 中不检查异常?

    我知道谷歌搜索我可以找到合适的答案 但我更喜欢听听您的个人 也许是技术 意见 Java 和 C 在抛出异常方面存在差异的主要原因是什么 在 Java 中 抛出异常的方法的签名必须使用 throws 关键字 而在 C 中 您不知道在编译时是否
  • MySQL 选择 JOIN 3 个表

    我有三个基本表 tblUsers usrID usrFirst usrLast 1 John Smith 2 Bill Jones 3 Jane Johnson pm data id date sent title sender id th
  • WPF 日历:粗体指定日期?

    我正在创建一个窗口 该窗口使用 WPF 日历来浏览在所示月份的指定日期创建的文档 当日历更改月份时 我会在数据库中搜索该月创建的所有文档 并用它来创建该月内包含文档的日期列表 在日历控件中 我想将包含文档的日期加粗 就像 Outlook 将
  • 在 3D 中拟合直线

    是否有任何算法可以从一组 3D 数据点返回直线方程 我可以找到大量的资料来给出 2D 数据集中的直线方程 但没有一个是 3D 的 如果您试图从其他两个值中预测一个值 那么您应该使用lstsq与a参数作为自变量 加上一列 1 来估计截距 和b
  • 加快从 pyodbc 插入 SQL Server 的速度

    In python 我有一个从一个数据库中选择数据的过程 Redshift via psycopg2 然后将该数据插入到SQL Server via pyodbc 我选择执行读 写而不是读 平面文件 加载 因为行数约为每天 100 000
  • jQuery 插件也适用于动态创建的元素

    我正在编写一个 jquery 插件 它应该处理链接上的额外信息以指定打开行为 例如 我想支持如下标记 a href somewhere class openmode a a href somewhere class openmode a a
  • 用于文档创建的元数据中是否有 Firestore 时间戳?

    我想知道 Cloud Firestore 是否在元数据中为每个文档创建时间戳 如果是 该元数据是否可用 我知道我可以出于任意原因在文档中创建自己的时间戳 但我只对文档本身的创建时间感兴趣 提前致谢 对于最新的 firestore beta
  • SQL SERVER 表变量上的非聚集索引?

    如何在表变量上创建非聚集索引 创建表 risk rskid 整数 在 risk rskid 上创建非聚集索引 r rskid nc 这是行不通的 My proc 我该如何优化它 ALTER PROCEDURE dbo SPR LV004 T
  • PostgreSQL + Rails citext

    我正在尝试迁移到使用 PostgreSQL 8 4 的heroku 它有一个 citext 列类型 这很好 因为该应用程序是为 MySQL 编写的 有没有办法将 citext 与 Rails 一起使用 这样如果迁移在 MySQL 上运行 c
  • 如何使用 UIBarButtonSystemItem 更改 UIBarButtonItem 标识符? (迅速)

    我想用代码从 播放 更改为 暂停 来更改 UIBarButtonItem 的标识符 我怎样才能做到这一点 Thanks 1 初始化一个新按钮 change to play let button UIBarButtonItem barButt
  • 有没有办法在异常时启动 Ruby 调试器?

    有没有办法在代码抛出异常时启动 Ruby 调试器 而无需我像这样包装代码 begin do something rescue debugger end 我希望以这样的方式来实现 do something部分引发异常 调试器将启动 如果不必修
  • Java Filter 将未登录的用户重定向到登录页面

    我试图制作一个过滤器来阻止未登录的用户访问某些页面 为此 我制作了一个包含以下内容的过滤器类doFilter method HttpServletRequest request HttpServletRequest req HttpServ
  • 如何使用 Phonegap 重定向至 Android 或 iOS 中的 GPS 设置窗口以打开或关闭 GPS

    我想在 Phonegap 中实现像 Native android 这样的功能 其中当用户想通过按钮单击启用 GPS 时 它将被重定向到 android 或 IOS 的设置部分 以便用户可以点击 GPS 按钮 因为通过编程方式我们无法直接打开
  • 覆盖保存方法 - “ImageFile”对象没有属性“_commissed”

    我重写了保存方法 如下所示 并使用 get thumbnails 和 sorl 保存 但得到错误 ImageFile object has no attribute committed class HotelPhotos models Mo
  • 耙子中止! :name:Symbol 的未定义方法“map”

    我正在尝试将参数传递给 Rake 任务并访问我的模型 如 如何将命令行参数传递给 rake 任务 and Rails rake 任务是否提供对 ActiveRecord 模型的访问 然而添加 gt environment到这段代码 requ
  • 从 Windows 服务器发送 PHP 邮件

    我的页面上有一个表格 当用户点击 发送 按钮时 它应该发送一封电子邮件 其中包含他在表单中输入的详细信息 直到最近 该表单都托管在 Linux 服务器上 我对它没有任何问题 邮件已发送和接收 最近我不得不转移到共享 Windows 服务器
  • 什么是“有限调试信息”? (完整的“调试信息”会生成巨大的EXE文件)

    我最近安装了Delphi XE7 当我第一次编译一个旧应用程序时 当我看到 EXE 的大小增加了 10MB 时 我惊得下巴都掉了 在 项目选项 中 我发现将 调试信息 设置为 有限调试信息 会将 EXE 大小减小到非常接近 Delphi X