当前位置: 首页 > 知识库问答 >
问题:

如何让 ndk-gdb 在Android系统上工作?

松献
2023-03-14

我正在尝试使NDK调试器正常工作,但到目前为止没有成功。

为了确保我的调试符号存在并且有效,我使用了编译器选项-O0和-g,以及ndk-build参数ndk调试=1。

ndk-gdb 脚本在运行时没有问题并启动地理数据库。当执行“共享库”命令时,我得到这个:

Symbols already loaded for /bla/bla/libMySharedLib.so

然而,当我尝试中断执行或者添加一个segfault进行测试时,我从调用堆栈中的那个库中得不到任何符号。我得到的唯一符号来自libc,例如,如果我在等待互斥体时中断执行。也尝试添加断点,运气不好。GDB让我添加断点,代码运行良好,但断点从未被触发。

我使用的是API级别8,因为我需要支持Android2.2(弗罗约)。

共有1个答案

邹铭
2023-03-14

您不需要使用-O0或-g开关。您需要执行以下操作之一:

  1. Android:可调试=“真”放到

执行这三项操作中的任何一项都将自动使用 -O0 和 -g 开关。

你能尝试在没有gdb脚本的情况下手动运行gdb吗?它涉及以下步骤:

    < li >将< code>gdbserver文件推送到设备上的< code>/data/local文件夹中 < li >运行您的应用程序

然后看看你能不能调试。

如果要查看库正在使用的其他共享库的符号(如 libc.so),请将它们从设备(从 /system/lib 文件夹)拉到 obj/local/armeabi 文件夹。

 类似资料:
  • 我是一个新的android studio和尝试让我的第一个应用程序运行。hello world功能正常工作,但当我在第二个应用程序中按下send按钮时,应用程序就会关闭。 我在此基础上编写的网站教程可以在这里找到:https://developer.android.com/training/basics/firstapp/starting-activity 乔希

  • 它从不完全加载,最后总是说等待300秒才能加载。我尝试过不同的方法来修复它,但都不管用。如何让它真正加载?

  • 服务启动和工作,但关闭应用程序后,服务也关闭。怎么修????

  • 我现在在android ndk中很天真。我尝试了此url中给出的步骤:https://www3.ntu.edu.sg/home/ehchua/programming/android/Android_NDK.html根据此,我从androidndkr_10导入我的eclipse中的HELLO_JNI示例,当我运行它时,会在logcat中出现以下错误 08-17 18:12:01.472:E/Andr

  • 我正在尝试使用随ndk提供的ndk-stack命令。 不幸的是,当我运行它时,脚本崩溃了。 我在windows上运行的命令是... ndk-stack . cmd-sym build/intermediates/cmake/debug/obj/armea bi-v7a-dump stack . txt stack.txt文件包含来自logcat的逻辑删除。 我收到的错误是.... 回溯(最后一次调

  • 我试图得到一个工作的Docker安装以下教程:http://docs.docker.io/en/latest/installation/windows/ 到目前为止,我使用手动下载的存储库运行虚拟机(遵循GitHub链接并下载为ZIP文件,因为“git clone”在我的公司代理后面不起作用,即使在使用“git conf-globalhttp.proxy...“-它一直要求我进行认证407,尽管我