5

私は Android アプリケーションを開発しており、プロジェクトで集中的な C++ コードを使用しています。まず、プロジェクトに C++ ソース コードを配置し、次のガイドを使用して、Android アプリケーションでネイティブ デバッグの NDK 機能を使用しました。

http://tools.android.com/recent/usingthendkplugin

しかし、開発の弱点の後、スタンドアロン プロジェクトでネイティブ コードを分離し、Android アプリケーションで出力 SO を使用することにしました。

私の質問 Android アプリケーションの別のプロジェクトの結果である SO ライブラリをデバッグするにはどうすればよいですか?

4

1 に答える 1

1

これには nkd-gdb を使用します (アプリ固有の .so ファイルの通常の場所にある、アプリケーション用にインストールした APK に .so を含める必要があります)。これは NDK の一部です。$NDK/docs/NDK-GDB.html を参照してください

ただし、注意してください: nkd-gdb は、アプリケーションが開始された後でのみ、GDB を .so にアタッチします。そのため、いくつかのブレークポイントを見逃す可能性があります。IDEプラグイン以外で、その問題を解決する2つの方法を知っています。

  1. .so の最初のエントリ ポイントに無限ループを配置し、ブレークポイントを設定した後、GDB を使用してその無限ループから抜け出します。
  2. https://android-review.googlesource.com/#/c/48029/から、保留中の ndk-gdb への更新をダウンロードしてください 。 AOSP はまだ... しかし、私は彼らの問題を再現したことがありません. もしあなたがそれを使っているなら、私に知らせてください.
于 2013-01-15T18:28:20.463 に答える