【问题标题】:How to create debug map file for Android app in Delphi XE6?如何在 Delphi XE6 中为 Android 应用程序创建调试映射文件?
【发布时间】:2015-07-10 20:15:58
【问题描述】:

我已经使用来自https://bitbucket.org/shadow_cs/delphi-arm-backtrace 的 Posix.Backtrace 为我在 XE6 中编译的 android 应用程序实现了回溯。就像现在一样,我得到了回溯,但没有得到行号。

我正在寻找为我的 android .so 创建地图文件,以便我可以在运行时将地址提供给 addr2line,以便我的错误报告将包含行号。

我通过选择 IDE 来创建一个地图文件,就像我为 Win32 Delphi 应用程序所做的那样

项目 > 选项 > Delphi 编译器 > 链接。

如果选择 Android 平台,则没有地图文件选项。选择所有配置 Android 似乎明确排除:映射文件 ARM,仅限 iOS 设备平台;地图文件,仅适用于 32 位 Windows、OSx、iOS 模拟器。无论如何我都尝试过关闭优化并进行调试,但没有.map文件。

有没有办法在 Delphi 中为 Android 应用程序创建 .map 文件?

谢谢!

【问题讨论】:

  • 你说得对,XE7中甚至没有
  • 在 XE2 和 10.2(我目前仅有的两个版本)中,生成地图文件的选项位于 Project Options > Linking 页面中,大约在一半。您可以在生成的文件中设置 4 种不同的详细程度。

标签: android delphi delphi-xe6 map-files


【解决方案1】:

如果您运行 RAD Studio 命令提示符并调用 dccaarm.exe,您会看到尽管 IDE 没有显示它,但编译器支持 -G-GD 命令行开关,这两个开关都会发出地图文件。

调用项目选项对话框 (Ctrl+Shift+F11) 并在选项树中选择 Delphi Compiler, Compiling。现在选择Other options, Additional options to pass to the compiler并输入-G

重新编译您的项目并生成一个地图文件,例如project_folder\Android\Debug\libProject1.so.map

请注意,我正在查看的 Delphi 10.1 Berlin 中仍然没有 IDE 链接器选项 - 问题与 Delphi XE7 相关,因此上述步骤的一些细节可能需要稍作调整。

【讨论】:

  • 谢谢!我们现在在 Delphi 10 Seattle。你的建议非常有效。我现在有一个适用于我的 android 的地图文件。
  • 我知道这是一个错误 - Delphi XE5 中的一个疏忽,没有人注意到所有这些版本......直到现在。我会尽力在某个时候报告它。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-27
  • 1970-01-01
  • 1970-01-01
  • 2013-11-19
  • 2014-07-08
  • 1970-01-01
相关资源
最近更新 更多