arm-linux-androideabi-addr2line使用

纵然是瞬间 提交于 2019-12-10 14:28:26

debug的时候,经常遇到类似 Fatal signal 11 (SIGSEGV) at 0x2f64699f

如果是so文件有问题,可以使用addr2line来定位,addr2lien的路径类似如下:

android-sdk-windows\ndk-bundle\toolchains\arm-linux-androideabi-4.9\prebuilt\windows-x86_64\bin

使用

arm-linux-androideabi-addr2line -C -f -e libXXX.so 2f64699f

输出结果类似: 

/home/hanfoo/code/test/addr2line/test1.c:5

结果中有文件名,有行号

问题

输出??:0

If the file name or function name can not be determined, addr2line will print two question marks in their place.  If the line number can not be determined, addr2line will print 0.

摘自http://linuxcommand.org/man_pages/addr2line1.html

下面转自http://kukuqiu.iteye.com/blog/1168794

在Android.mk 文件中LOCAL_CFLAGS补充2个编译参数  -Wl,-Map=test.map -g

LOCAL_CFLAGS := -D__STDC_CONSTANT_MACROS -Wl,-Map=test.map -g

tip: 1,注意调试文件的位置在obj目录下,并非libs目录下生成的so文件 
       2,0024362e 为出错的机制位置 
还有: 
在jni/目录下增加Application.mk 文件, 修改为debug 模式,进行调试 APP_OPTIM := debug 
具体application.mk 文件的配置见: http://blog.csdn.net/weidawei0609/article/details/6561280 

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!