1

最初に、私はすでに3つか4つのチュートリアル、スタックオーバーフローに関する20の関連する質問を読みました、私は必死です、何もうまくいかないようです...

私はmacosx、Eclipse juno、ndk-r8で実行しています。ライブラリ(.jar)を使用するアプリケーション(.apk)をデバッグしようとしていますが、多くのネイティブライブラリ(.so)を使用しています。私の2つのAndroidManifest.xmlにはdebuggable=trueが含まれています。これは、「ndk-build NDK_DEBUG=1」を使用して.soをコンパイルします。


しかし、アプリケーションディレクトリで「ndk-gdb」を呼び出すと、次のようになります。

"ERROR: Could not find gdbserver binary under ./libs/none"

(これは正常のようです)


ライブラリディレクトリで、次のようになります。

"ERROR: Non-debuggable application installed on the target device."

(これは誤りです)


プログラムがsegvでクラッシュしたときに、addr2lineまたはndk-stackを使用すると、両方ともアドレスが正しくないと表示されます。

gdbが私のプロセスにアタッチできない理由を誰かが考えていますか?またはこれを行うための回避策がありますか?

4

1 に答える 1

0

コメントで以前に言ったように:

ndk-gdb は、jni が Android ライブラリ プロジェクト内にあるプロセスにアタッチできません。

回避策として、ライブラリにモック メイン エントリ ポイントを配置して、それを実行可能なプロジェクトに変換し、デバッグ モードで実行することができます。

于 2012-11-13T19:59:19.417 に答える