调试Android NDK应用程序问题

时间:2014-07-11 08:54:05

标签: android-ndk

我在我的原生Android应用程序中遇到问题libc: Fatal signal 7 (SIGBUS) at 0x66f0001d (code=1), thread 30165 (xample.fft_test) 我认为这是设备上的内存问题(nexus 4)。

因此,我尝试调试应用程序以了解此问题的根源。

在日食中,我得到warning: Could not load shared library symbols for 94 libraries, e.g. /system/bin/linker. Use the "info sharedlibrary" command to see the complete listing. Do you need "set solib-search-path" or "set sysroot"? warning: Unable to find dynamic linker breakpoint function. GDB will retry eventurally. Meanwhile, it is likely that GDB is unable to debug shared library initializers or resolve pending breakpoints after dlopen().

这是什么意思?

这里也是eclipse中分配跟踪器的输出:

enter image description here

2 个答案:

答案 0 :(得分:1)

如果你的application.mk有标志:

APP_STL := gnustl_static 
APP_OPTIM := debug

编译标志有问题。

警告意味着那些库没有使用调试标志编译,然后,您没有调试信息,因此您无法调试。也许你可以在断点处停下来并一步一步地进行,但是你无法实时读取变量的值。

因此,要解决此问题,必须使用调试信息标志重新编译要读取变量的库。在Cmake中,我通常使用flag -d或-gdwarf-4在Android中进行交叉编译。

答案 1 :(得分:-1)

我遇到了同样的问题,我用另一部手机解决了这个问题。

我在很多手机上测试过。最后,我发现Nexus 6上的调试NDK没问题。

所以我想也许问题是在某些手机上删除了对调试NDK的支持。