46

我在 Eclipse 上有两个项目,一个产生一个 so,另一个是使用它的 Android 应用程序我正在尝试使用本指南在 so 中调试本机代码。

  1. 我将我的应用程序设置为可调试
  2. 我在调试模式下启动了我的应用程序
  3. 我运行 ndk-gdb

当我运行本机调试器时,我得到:

Error in final launch sequence
Failed to execute MI command:
-gdb-set target-async off
Error message from debugger back end:
Cannot change this setting while the inferior is running.
Cannot change this setting while the inferior is running.
4

2 回答 2

1

我在这里找到了这个链接链接,实际作者是marc

由于您遵循指南并安装了CDT.

CDT启动时,它会尝试在 处设置断点main,因此当您的程序启动时它会中断执行。但是,您的目标已经在运行,因此无法设置断点并且整个事情都失败了。

您可以简单地告诉您的启动不要设置该断点并让它连接到您的目标。转到:运行->调试配置...并找到您的启动配置。然后选择启动子选项卡,向下滚动并取消选中“运行时选项”小节中的“设置断点”。

****它也可能与您使用的操作系统有关,因为这是执行较差的问题。****因此可能需要补丁。但在做任何事情之前尝试上面。它可能会解决您的问题。

此外,从 .gdbinit 文件中删除“target”命令可能会有所帮助,因为 eclipse 插件已经发出了这个命令。

如果没有任何效果,您可能会寻找更改调试器,因为最后它是一个 gdb 编译问题。

我的回答完全基于研发。

于 2016-09-06T14:59:44.273 回答
0

eclipse内部的gdb客户端和gdb服务器不匹配。尝试在eclipse中更改gdb客户端

调试设置 --> 调试器 --> 主选项卡 --> 浏览到为同一平台编译的 gdb

于 2016-09-04T14:46:59.473 回答