使用addr2line命令定位到行号解析.so的文件

更新时间:2023-07-07 19:51:47 阅读: 评论:0

使⽤addr2line命令定位到⾏号解析.so的⽂件⼀、背景
最新遇到crash 的问题 ,这⾥来简单说明怎么使⽤addr2line 命令来定位问题
⾸先获取到tombstone log
框架结构的特点找到出现的位置如下log
Process Name: 'UNKNOWN'
繁星春水思维导图Thread Name: ''
pid: 3124, tid: 3124  >>> UNKNOWN <<<
killed by pid: 1, comm: UNKNOWN, uid: 0.
signal 15 (SIGTERM), code 0 (?), fault addr --------
r0 fffffffc  r1 ffd0e538  r2 00000010  r3 00007b20
r4 00000000  r5 00000008  r6 00000000  r7 0000015a
r8 f2ab269c  r9 00000008  10 f2ab2650  fp 00007b20
ip ffd0e4d0  sp ffd0e4c0  lr f2e33339  pc f2e605a0  cpsr 20070010
#00  pc 000485a0  /system/lib/libc.so
#00  pc 000485a0  /system/lib/libc.so
#01  lr 0001b339  /system/lib/libc.so
-
-- --- ---
[DEBUG] Read lf maps instead! map: 0x0
00 pc 000485a0  /system/lib/libc.so (__epoll_pwait+20)
01 pc 0001b337  /system/lib/libc.so (epoll_pwait+38)
--- --- --- ---
从上⾯我们可以看到出现问题的在libc.so 这个库⽂件
⼆、找到对应的库⽂件
⼀版系统编译的这些库都会放到
\out\target\product\product_name\system\lib\下⾯
对应的在out\target\product\product_name\symbols\system\lib\也有⼀个
我们需要解析是在这个⽬录下的out\target\product\product_name\symbols\system\lib\的库⽂件
三、使⽤addr2line⼯具分析
这个⼯具在不同的android 平台上,放置的位置和名称有些区别
anroid 7.0
学做小点心
prebuilts\gcc\linux-x86\aarch64\aarch64-linux-android-4.9\bin\aarch64-linux-android-addr2line prebuilts\gcc\darwin-x86\aarch64\aarch64-linux-android-4.9\bin\aarch64-linux-android-addr2line
如:android 8.1 位置如下
prebuilts\gcc\linux-x86\aarch64\aarch64-linux-android-4.9\bin\aarch64-linux-android-addr2line android 9.0 位置在
\prebuilts\gcc\linux-x86\aarch64\aarch64-linux-android-4.9\bin\aarch64-linux-android-addr2line
我们今天分析是在8.1上⾯对应的位置为:
prebuilts\gcc\linux-x86\aarch64\aarch64-linux-android-4.9\bin\aarch64-linux-android-addr2line
四、操作步骤
a、我们以andriod 8.1 的为案例:
济南住宿
⾸先切换到代码的根⽬录:
如 anroid_home#
b、使⽤命令定位
使⽤命令 aarch64-linux-android-addr2line -f -e  +库名称 +地址
上⾯的地址为: 000485a0
000485a0  000485a0巨胜
0001b339  0001b337
c、结果显⽰
$ ./prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/aarch64-linux-android-addr2line -f -e out/target/product/msm8953_64/symbols/system/lib/libc.so 000485a0
__epoll_pwait
/proc/lf/cwd/bionic/libc/arch-arm/syscalls/__epoll_pwait.S:16
./prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/aarch64-linux-android-addr2line -f -e out/target/product/msm8953_64/symbols/system/lib/libc.so 0001b339
epoll_pwait
bionic/libc/bionic/epoll_pwait.cpp:?
./prebuilts/gcc/linux-x86/aarch64/aarch64-linux-android-4.9/bin/aarch64-linux-android-addr2line -f -e out/target/product/msm8953_64/symbols/system/lib/libc.so 0001b337
悟空去哪儿epoll_pwait
bionic/libc/bionic/epoll_pwait.cpp:42
五、结果分析
通解析库⽂件--找源码的位置-分析源码
经营管理
找出问题的根源。
诺基亚系列

本文发布于:2023-07-07 19:51:47,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1072023.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:位置   问题   出现   命令   定位
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图