前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CrashDumpInstallSym.sh

CrashDumpInstallSym.sh

作者头像
用户2930595
发布2018-08-23 09:51:57
7570
发布2018-08-23 09:51:57
举报
文章被收录于专栏:difcareer的技术笔记

breakpad: Native crash 日志收集工具中,详细介绍了breadpad的使用流程,但是在实际操作过程中,发现有如下问题需要解决:

  1. native的崩溃堆栈和Java层的崩溃堆栈如何对应?在腾讯的bugly上可以看到他们解决了这个问题:

https://bugly.qq.com/v2/crash/apps/900035977/issues/24?pid=1

  1. 符号表需要放到特定的文件结构中才能解析。

针对于问题1,我已经解决,但目前不开源,大家可以去逆向看看腾讯的实现。

针对于问题2,我已经编写shell脚本自动化解决。

github打不开了,直接上源码:

InstallSym.sh

使用:./InstallSym.sh path/of/so_file [/path/of/symbol/]

传递so路径,即可生成对应的符号表,并安装在合适的目录下。

代码语言:javascript
复制
#! /bin/bash

if [ $# -lt 1 ]; then
  echo "Usage: $0 /path/of/so_file [/path/of/symbol/]"
  exit 0
fi

so_path=$1
symbol_path="symbol"
if [ $# -eq 2 ]; then
  symbol_path=$2
fi

echo "start install Symbol:$so_path, symbol:$symbol_path"
so_name=$(basename $1)

#0
if [ ! -d $symbol_path ];then
  echo "create dir: ${symbol_path}"
  mkdir ${symbol_path}
fi

#1
sub_dir=${symbol_path}/${so_name}
if [ ! -d $sub_dir ];then
  echo "create dir: ${sub_dir}"
  mkdir ${sub_dir}
fi

#2
echo "dump_syms $so_path > ${so_name}.sym"
dump_syms $so_path > ${so_name}.sym

#3
uid=`head -n 1 ${so_name}.sym | awk '{print $4}'`
echo $uid
sub_dir=${sub_dir}/${uid}
if [ ! -d $sub_dir ];then
  echo "create dir: ${sub_dir}"
  mkdir ${sub_dir}
fi

#4
mv ${so_name}.sym ${symbol_path}/${so_name}/${uid}
echo "symbol installed!"

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017.02.23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • InstallSym.sh
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档