1

https://bitbucket.org/shadow_cs/delphi-arm-backtraceの Posix.Backtrace を使用して、XE6 でコンパイルされた Android アプリのバック トレースを実装しました。今のところ、バックトレースは取得できますが、行番号は取得できません。

私のバグレポートに行番号が含まれるように、実行時にアドレスをaddr2lineにフィードできるように、Android .soのマップファイルを作成しようとしています。

Win32 Delphi アプリの場合と同じように、IDE を参照してマップ ファイルを作成します。

[プロジェクト] > [オプション] > [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 コンパイラ、コンパイルを選択します。ここで、[その他のオプション]、[コンパイラに渡す追加のオプション] を選択して入力します。-G

プロジェクトを再コンパイルすると、マップ ファイルが生成されます (例: project_folder\Android\Debug\libProject1.so.map)。

IDEリンカオプションは、私が見ているDelphi 10.1 Berlinにはまだ存在しないことに注意してください-質問はDelphi XE7に関連しているため、上記の手順の詳細の一部には微調整が必​​要な場合があります。

于 2016-09-15T23:26:18.283 に答える