arm-linux-androideabi-addr2line使用

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

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 

 

转载于:https://my.oschina.net/shanlilaideyu/blog/740859

你可能感兴趣的:(arm-linux-androideabi-addr2line使用)