我正在尝试使用ndk-stack实用程序来获取一些帮助 使用本机库调试我的应用程序。问题是 我使用该实用程序的所有内容是:
*** 崩溃转储: ** * 构建指纹: 'tmobile / htc_vision / vision:2.3.4 / GRJ22 / 82286:user / release-keys' pid:15769,tid:15794>>> us.ihmc.aci.dsproapp<<<信号11 (SIGSEGV),代码1(SEGV_MAPERR),故障地址00000024堆栈帧#00 pc 00063710 /data/data/us.ihmc.aci.dsproapp/lib/ libutil.so:Unable 打开符号文件/ home / enrico / CVSROOT / android / ACI / dsproapp / OBJ /本地/ armeabi / libutil.so。 错误(9):文件错误 描述符
我正在使用的命令是:
ndk-stack -sym ../obj/local/armeabi -dump /home/enrico/stacktrace/crash_waypoint.txt
我的所有本机库都是用
编译的APP_OPTIM:=调试APP_STL:= gnustl_static
在Application.mk中,调试符号应该存在。 你们之前有没有人遇到过这个问题? 谢谢, 恩里科
答案 0 :(得分:4)
尝试在我的C代码中调试崩溃时发生了。我把头撞了过去大约3个小时。
您可能正在使用{project_root}/libs/arm*/
中的.so文件。
你应该使用{project_root}/obj/local/arm*/
一个。这个有符号信息。
答案 1 :(得分:1)
当.so文件存在但文件不包含符号信息时,我看到了这个错误。我的猜测是你的文件没有为它生成符号。
答案 2 :(得分:1)
我想
你的Application.mk应该是这样的:
APP_STL := gnustl_static
APP_ABI := armeabi
APP_OPTIM := debug
你的Android.mk应该是这样的:
LOCAL_CFLAGS := -I <Your header files goes here>
LOCAL_CFLAGS += -g
LOCAL_CFLAGS += -ggdb
LOCAL_CFLAGS += -O1