如何在 Delphi XE6 中为 Android 应用程序创建调试映射文件?

How to create debug map file for Android app in Delphi XE6?

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

我想为我的 android 创建映射文件,这样我就可以在运行时将地址提供给 addr2line,这样我的错误报告就会包含行号。

我希望 IDE 通过选择

创建一个地图文件,就像我为 Win32 Delphi 应用程序一样

Project > Options > Delphi Compiler > Linking.

如果选择 Android 平台,则没有地图文件选项。选择所有配置 Android 似乎明确排除在外:映射文件 ARM,仅 iOS 设备平台;地图文件,仅限 32 位 Windows,OSx,iOS 模拟器。无论如何,我在关闭优化和调试的情况下尝试了它,但没有得到 .map 文件。

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

谢谢!

如果你 运行 打开 RAD Studio 命令提示符并调用 dccaarm.exe 你会看到尽管 IDE 没有出现,编译器支持 -G-GD 命令行开关,它们都发出映射文件。

调用项目选项对话框 (Ctrl+Shift+F11) 并在选项树中选择 Delphi 编译器、编译。现在 select 其他选项,传递给编译器的附加选项并输入 -G

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

请注意,IDE 链接器选项在 Delphi 10.1 Berlin 中仍然不存在,我正在查看 - 问题涉及 Delphi XE7 等一些细节上述步骤中的一部分可能需要稍作调整。