NDK 下利用 arm-linux-androideabi-addr2line 定位 so 库问题点
“通常so库崩溃都是内存问题(野指针/空指针/访问越界...)”
1.backtrace信息as里面通常无法打印,需要 adb logcat > crash.log , 然后根据 crash.log 分析
I/DEBUG ( 7520): backtrace:
I/DEBUG ( 7520): #00 pc 00022130 /system/lib/libc.so (__memcpy_base+104)
I/DEBUG ( 7520): #01 pc 000152a7 /data/app-lib/libtest-lib.so (testThread+582)
I/DEBUG ( 7520): #02 pc 0000d240 /system/lib/libc.so (__thread_entry+72)
I/DEBUG ( 7520): #03 pc 0000d3dc /system/lib/libc.so (pthread_create+240)
2.回过头来想,看到“pc 00022130 /system/lib/libc.so (__memcpy_base+104)”的时候第一反应应该就是 memcpy 某个数据出错,地址为NULL 或者 长度越界
3.网上有很多利用 arm-linux-androideabi-addr2line 定位 so 库崩溃 函数行的资料,刚开始定位的时候是直接用最终release的so库作为基础,行数怎么都不出来。后面看到别人的路径试了才知道原来得用 一个类似中间件的so库才能定位到,我把这两个库理解固件里面为 elf 和 bin 的关系,在我的工程目录下面搜索出来可定位的库是在下面这个目录下
\build\intermediates\cmake\release\obj\armeabi-v7a\test.so
通过执行:arm-linux-androideabi-addr2line.exe -e 得到目标行
arm-linux-androideabi-addr2line.exe -e test.so 152a7 -f
testThread
\testlib\src\main\cpp/test-lib.cpp:850
NDK 下利用 arm-linux-androideabi-addr2line 定位 so 库问题点相关推荐
- linux+手机+gps,Linux环境下利用GPS+蓝牙实现移动定位
搞了一个下午终于把这个弄清楚了:查了下网络资料基本也没什么相关的,这里就自己写个和大家分享下吧.虽然在XP系统下实现起 搞了一个下午终于把这个弄清楚了:查了下网络资料基本也没什么相关的,这里就自己写个 ...
- python多线程处理数据库_在flask框架下利用Python的threading或thread多线程库如何操作数据库?...
萌新在写网站的发送邮件验证,为了防止用户滥发,所以加了权限.前端简单地disable按钮一刷新就没了,纯粹视觉提示作用,所以在后端models里为user加了一个resend_right,当为True ...
- 嵌入式 linux下利用backtrace追踪函数调用堆栈以及定位段错误
嵌入式 linux下利用backtrace追踪函数调用堆栈以及定位段错误 2015-05-27 14:19 184人阅读 评论(0) 收藏 举报 分类: 嵌入式(928) 一般察看函数运行时堆栈的 ...
- arm linux下交叉编译valgrind工具进行内存泄露检测和性能分析
C/C++等底层语言在提供强大功能及性能的同时,其灵活的内存访问也带来了各种纠结的问题.如果crash的地方正是内存使用错误的地方,说明你人品好.如果crash的地方内存明显不是consistent的 ...
- ARM Linux下UPnP使用
ARM Linux下UPnP使用 一.UPnP简介 UPnP(Universal Plug and Play)技术是一种屏蔽各种数字设备的硬件和操作系统的通信协议.它是一种数字网络中间件技术, ...
- linux编译freebsd,freebsd下作x86/arm linux的交叉编译器
freebsd下作x86/arm linux的交叉编译器 2009-05-13 01:40:08来源:未知 阅读 () 以纯粹的源码编译交叉编译器,还是头一遭.以往都是利用目标主机上的头文件和库文件作 ...
- linux+Qt 下利用D-Bus进行进程间高效通信的三种方式
linux+Qt 下利用D-Bus进行进程间高效通信的三种方式 原文链接: https://www.cnblogs.com/wwang/archive/2010/10/27/1862552.html ...
- Linux下利用rsync实现多服务器文件同步
Linux下利用rsync实现多服务器文件同步 目标:多服务器文件同步 环境:2台centos5.6 Web端:192.168.20.20 Backup端:192.168.20.21 需要备份目录为: ...
- linux下利用openssl来实现证书的颁发(详细步骤)--转载和修改
原文地址:http://www.cnblogs.com/firtree/p/4028354.html linux下利用openssl来实现证书的颁发(详细步骤) 1.首先需要安装openssl,一个开 ...
最新文章
- dbcontext mysql_.Net Core 2.0数据库第一种方法Mysql DB的Scaffold-DbContext
- SqlServer性能监控和优化总结
- boost::thread相关的测试程序
- HTML 链接 强制打开“另存为...”弹出式文本链接打开HTML
- Android查看真机布局,android-外部存储
- 设置部分文件不适用ARC机制
- asp.net定时自动执行控制台程序
- Pycharm设置一种好看的皮肤/主题
- 机器学习,深度学习的资料和工具库大全
- WPS实现公式居中同时编号对齐
- java 栈队列区别是什么意思_Java实现数据结构栈stack和队列Queue是什么?
- QT: 基于QT和嵌入式的视频监控系统
- npm ERR code EEXIST 报错 解决方案
- java计算里程_通过角速度计算里程(对于两轮机器人)?
- 杰理之静电测试等级【篇】
- 文献翻译神器---助你轻松阅读理解英文文献论文
- RT-Thread GD32F4xx RTC设备驱动
- 刚上线的阿里达摩院官网,从前端角度看圈点之处
- 每日站立会议怎么开?
- JUnit 5用户指南目录
热门文章
- 特斯拉被曝储存大量未加密个人数据,你的隐私正在“裸奔”!
- @程序员,你真的会用 Unix 命令?
- 程序员遇到什么样的工作状态应该果断跳槽走人?
- 未来的 AI 芯片将提升百倍性能!
- 辽工大计算机网络实验报告,辽工大计算机硬件实验报告.doc
- java检测textarea换行_Textarea和Java 换行符
- 基于python的证件照_用20行python代码给证件照换底色
- 3d max用不同目标做关键帧_3D动画制作流程大解析
- 2008年卫星地图_黄河入海口1984年-2016年,34年卫星地图变化
- SQL 取空格右边的字符_从零学会SQL,第2关