1

我使用来自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 文件?

谢谢!

4

1 回答 1

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 有关,因此上述步骤的一些细节可能需要稍作调整。

于 2016-09-15T23:26:18.283 回答