Android ndk Android NDK arm linux AndroidABI gcc行号信息

Android ndk Android NDK arm linux AndroidABI gcc行号信息,android-ndk,ndk-gdb,Android Ndk,Ndk Gdb,使用ndk gdb调试本机应用程序。当我一步一步地通过代码时,我得到了以下信息 (gdb) n Single stepping until exit from function my_current_function_name, which has no line number information. 因此,我无法调试该应用程序。调试器直接单步执行,直到找到具有行号信息的函数为止 我们的项目由一个单独的项目中的所有核心应用程序代码构成,该项目将首先编译到一个共享库(.so文件)中。然后,我们

使用ndk gdb调试本机应用程序。当我一步一步地通过代码时,我得到了以下信息

(gdb) n
Single stepping until exit from function my_current_function_name,
which has no line number information.
因此,我无法调试该应用程序。调试器直接单步执行,直到找到具有行号信息的函数为止

我们的项目由一个单独的项目中的所有核心应用程序代码构成,该项目将首先编译到一个共享库(.so文件)中。然后,我们构建项目,该项目链接共享库并生成APK文件。JNI文件夹中的代码是使用行号信息生成的。但是,使用AndroidABI gcc编译成.so文件的单独项目中的代码没有行号信息


编辑:忘记提到“-g-ggdb”标志已经存在于Makefile中。尽管有这些标志,还是可以看到这个问题。

您可以回答自己的问题:单独的。所以(本地预建共享库?)没有行号信息。您可以更改此的生成标志。那么,您不能吗?您甚至可以将其编译为一个静态库,以使调试更容易(假设您试图用
gdb
解决的问题不是特定于应用程序的多so性质)。@AlexCohn我已经添加了-g和-ggdb标志(它们在Makefile中,在它之前,由我的同事很久以前添加)。但是,我仍然无法使用ndk gdb进行调试。为了获得行号信息,我应该添加哪些标志?谢谢你的回复。也许调试信息被删除了。从
SeparateProject/obj/local/armeabi
尝试.so文件的“fat”副本,而不是从
SeparateProject/libs/armeabi
@AlexCohn,这是一件值得寻找的事情。我刚才试过了。看起来obj不支持GDB。如果我使用obj目录中的.so文件,它甚至无法设置断点。更不用说单步执行代码了。你的意思是说,
lib
copy“更易于调试”?