利用ssh下载symbols并通过addr2line定位so库错误位置的用法


1.通过ssh连接服务器,其中develop为用户名,后面ip为服务器ip地址:
ssh -l develop 192.168.1.12

2.在连接过程中提示没有授权之类的信息,问是否继续,输入yes继续;然后在提示输入密码的地方,输入密码即可连接上

3.用scp拷贝服务器上的文件夹到本机上,需要先退出ssh登录的远程服务器,执行以下命令进行拷贝:
scp -r develop@192.168.1.12:/home/project_name/out/target/product/product_name/symbols /home/ameyume/projects/symbols/test
-r表示递归文件夹拷贝
develop@192.168.1.12:/home/project_name/out/target/product/product_name/symbols 为要拷贝的远程服务器目录
/home/ameyume/projects/symbols/test 要拷贝到的本地主机目录

4.使用arm-eabi-addr2line工具定位native代码的错误位置

I/DEBUG   (   79):          #00  pc 0002084c  /system/lib/libc.so
I/DEBUG   (   79):          #01  lr a970a079  /system/lib/libaudio.so


~/projects/symbols/test/symbols$ arm-eabi-addr2line -e ./system/lib/libc.so 0002084c
/home/project_name/bionic/libc/string/strchr.c:37

输出错误代码行数:37

相关内容