2

オンラインでいくつかのチュートリアルに従い、gdb をセットアップしてネイティブ コードをデバッグしようとしました。

  1. Android NDK ビギナーズ ガイドの第 11 章。
  2. ビデオ: http://www.youtube.com/watch?v=hMV7Xqcn39k&list=PLD89B891EF9D26F14&feature=mh_lolz
  3. フォーラム: http://wiki.eclipse.org/Sequoyah/ndk_guide

それらのどれも私のデバッガーを完全に機能させませんでした。

上記のすべてのチュートリアルで、ネイティブ コードをデバッグするための正しい手順として同意されている次の手順に従って、特定の問題が発生しました。

  1. Eclipse で、JAVA デバッグ セッションを開始し、onCreate() メソッドの最初のブレークポイントで停止します。
  2. ターミナルで、プロジェクト フォルダーの下で ndk-build-eclipse (元の ndk-gdb のコピーで、gdb クライアントをサーバーに自動接続することに関する最後の行がないもの) を実行しますが、明確な警告やエラーは表示されません。
  3. ターミナルで chmod +x MY_PROJECT/obj/local/armeabi/app_process (私は Mac を使用しています)、そうしないと、「不明な理由で MY_PROJECT/obj/local/armeabi/app_process を実行できません」というエラーが表示されます。この app_process は、C++ デバッグ構成で GDB デバッガーとして設定されています。
  4. Eclipse で、C++ デバッグ構成を開始します。

次に、次のようなエラー ダイアログが表示されました。

Error creating session
 Process Terminated
    Process Terminated
    Process Terminated
4

1 に答える 1

0

(質問編集でOPによって解決されました。コミュニティwikiの回答に変換されました。回答がない質問を参照してください。ただし、コメントで問題が解決されました(またはチャットで拡張されました)

OP は次のように書いています。

これを自分で解決しました:

C++ デバッグ構成 (Debugger タブの下) に間違った gdb デバッガーを入れました。

  • そこにあるはずです(NDK r7b): $NDKROOT/toolchains/$ARCH/prebuilt//bin/arm-linux-androideabi-gdb
  • そこに間違って入れたもの: ${PROJECT_DIR}/obj/local/armeabi/app_process、これは [メイン] タブの下の C/C++ アプリケーションにのみ入れる必要があります。

これを修正すると問題が解決し、Eclipse で gdb を使用してネイティブ コードをデバッグできるようになりました!!

于 2015-01-30T19:32:01.747 に答える