2

我曾尝试在 Android 上调试原生 c,

但得到以下错误:

There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "--host=x86_64-apple-darwin --target=arm-linux-android". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. Warning: /Users/eladb/MyWorkspace/Client/src/android/java/src/pcf: No such file or directory. Remote debugging from host 225.89.3.0 warning: while parsing target library list (at line 2): No segment defined for ..

警告:/Users/eladb/MyWorkspace/Client/src/src/pcf:没有这样的文件或目录。从 /Users/eladb/MyWorkspace/Client/src/android/java/obj/local/armeabi/app_process 读取符号...完成。

警告:在 /Users/eladb/MyWorkspace/Client/src/android/java/obj/local/armeabi/app_process 中找不到调试符号。要么编译二进制文件而没有调试信息,要么删除了调试信息(例如,使用strip 或strip -g)。调试器功能将非常有限。

我怎样才能解决这个问题?

4

2 回答 2

1

我相信您应该尝试使用“gcc - g”或其变体重新编译您的代码,然后再调试一次。

于 2013-06-25T01:43:06.847 回答
0

您实际上并没有收到任何错误(或者至少,您没有发布它们)。你分享的都是警告。这意味着你可以做任何你想做的事情,只是要注意事情可能不会顺利进行。

第一条消息的前半部分只是一个无保修通知。这对于 gdb 来说是正常的。

紧随其后的是缺少文件警告。我不确定该文件是什么或它的作用。手动检查它是否存在,如果没有,您可能需要重新安装一些东西。如果是,请检查 gdb 是否有足够的权限来访问该文件。(请记住,这只是一条警告消息,因此修复它并不重要。)

最后一个警告是关于缺少调试符号的。调试符号仅用于辅助调试,主要用于确定哪些二进制指令对应于源代码的哪些部分。在 gcc(和 g++)中,这些可以通过在编译时使用 -g 标志来包含。大多数 IDE 都会在某处对此进行设置。

于 2013-06-27T10:36:25.727 回答