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++ 调试配置中放置了错误的 gdb 调试器(在调试器选项卡下)。

  • 那个应该在那里(NDK r7b): $NDKROOT/toolchains/$ARCH/prebuilt//bin/arm-linux-androideabi-gdb
  • 我错误地放在那里的那个: ${PROJECT_DIR}/obj/local/armeabi/app_process,它应该只放在 Main 选项卡下的 C/C++ Application 中。

解决这个问题解决了我的问题,现在我可以在 Eclipse 中使用 gdb 调试本机代码了!!

于 2015-01-30T19:32:01.747 回答