关于android 上 gdb调试进程的方法请参考前一篇文章。
如果 android应用程序 包含动态库调用,程序异常退出后 给出一堆地址,
如
I/DEBUG ( 841): signal 11 (SIGSEGV), fault addr deadbaad
I/DEBUG ( 841): r0 00000000 r1 afd1498d r2 00000027 r3 00000070
I/DEBUG ( 841): r4 afd42328 r5 00000000 r6 00000000 r7 4e6fae30
I/DEBUG ( 841): r8 00100000 r9 a811c2f9 10 4e5fb000 fp 0013cdb8
I/DEBUG ( 841): ip 0000173c sp 4e6fa9d8 lr deadbaad pc afd11f40 cpsr 60000030
I/DEBUG ( 841): d0 400000003eaaaaab d1 3ff0000041f00000
I/DEBUG ( 841): d2 0000000050baf6de d3 0000000000000000
I/DEBUG ( 841): d4 00000007000000b4 d5 3fe999999999999a
I/DEBUG ( 841): d6 3fe000000000000binder: release proc 1047, transaction 109259, not freed
0 d7 3eaaaaab3f800000
I/DEBUG ( 841): d8 0000000000000000 d9 0000000000000000
I/DEBUG ( 841): d10 0000000000000000 d11 0000000000000000
I/DEBUG ( 841): d12 0000000000000000 d13 0000000000000000
I/DEBUG ( 841): d14 0000000000000000 d15 0000000000000000
I/DEBUG ( 841): scr 80000012
根据 pc 地址 及crash的 动态库可以推断出现问题的 代码位置,
利用 gcc 的 命令arm-eabi-addr2line ,从地址到代码位置的定位:
具体例子:比如我的 动态库为 hello.so,把此库放在本地
带 symbols 的android lib目录下,执行
arm-eabi-addr2line
-C-f -e /path/to/lib/with_sysbols/hello.so
afd11f40
上面的afd11f40
为 crash时的pc 地址:
(I/DEBUG
( 841): ip 0000173c sp 4e6fa9d8 lr deadbaad pc afd11f40 cpsr 60000030
注意点:
1. 最好把你的动态苦编译成调试版本(-g)
2. 要把你的动态苦放在android 动态库的
sysbols版本目录下,比如我的机器上目录为:(Eg.)/home/usera/android/out/target/product/generic/symbols/system/lib
分享到:
相关推荐
android 动态库远程依赖
只要是qt在android开发中调用动态库和静态库的例子。
Android调用c的动态库方法demo源码,以支付宝脱机乘车码so库调用为例子,参加博客介绍:https://blog.csdn.net/yyz_1987/article/details/74332424
android studio 简单demo实现将c++代码 编译成静态库和动态库 简单的makefile文件一看就明白
x264库,通过NDK编译为动态库,亲测可用
curl7.79.0最新Android版动态库
unity-调用动态库so-android篇, so示例制作,ndk-build生成so动态库, unity调用so动态库
Android Studio 基于cmake 链接静态库,动态库,博客地址:https://blog.csdn.net/dreams_deng/article/details/104540775
此资源为FFmpeg4.0编译好的Android版动态库。可以在ndk项目中引入使用开发音视频或者练习ffmpeg开发技术
Android平台C++ BOOST v1.69动态库,欢迎大家下载使用!
ffmpeg 4.3.5
教你如何生成.h文件,使用window通过NDK编译出.so文件,如何通过JNI调用so文件
在android平台上开发opencv需要集成的库,32位和64位都有
这个是Android NDK上调用第三方的动态库的实例,而且代码简单容易理解,非常适合新手学习参考,因为网上很多资源是C2C(Copy to Copy)的,有些还不能运行,容易误导新手,并且还要设置积分,我免积分提供给网友下载...
ffmpeg 3.1 android 静态库及动态库
嵌入式Android平台opencv3.4动态库,欢迎大家下载使用!
Android动态权限三方库demo下载,更多请查看我的博客:https://blog.csdn.net/xiayiye5
android编译openssl静态库.a 动态库.so 1)make_static.sh 编译静态库 2)make_share.sh 编译动态库
因此,这里我将为大家介绍如何给其它开发者创建可供使用的静态库或动态库。而应用开发者如何去连接这些生成的静态库或动态库。由于现在Android Studio已经比较成熟,因此以下描述将基于Android Studio的目录布局。 ...
android 平台airkiss动态库,通过此库可以模拟airkiss协议,实现wifi配网,微信控制硬件的功能