众所周知,在android系统上,有时候我们遇到so文件的crash只能打log,但是很多时候并不知道crash在什么地方,幸运的是crash后,一般可以产生一个.dmp文件。

我们可以根据这个文件来得到更为详细的statck trace。

主要用的就是google提供的一些方法,命令太复杂,很容易出错,所以我写了一个python脚本,简化步骤。

详情可以参考 https://code.google.com/p/google-breakpad/wiki/LinuxStarterGuide

#! /usr/bin/env python

import os

import sys

if len(sys.argv) < 3:

print("please check your parameter")

exit(-1)

soFile = sys.argv[1]

dmpFile = sys.argv[2]

print soFile,

print dmpFile

symFile = soFile + ".sym"

#dumple sym file

os.system("./dump_syms " + soFile + " > " + symFile)

#get directory information

ret = os.popen("head -n1 " + symFile).read()

arry = ret.strip().split(" ")

dirName = arry[3]

symPath = "./symbols/" + soFile + "/" + dirName

#create directory

os.system("mkdir -p " + symPath)

os.system("mv " + symFile + " " + symPath)

#minidump to log file

os.system("./minidump_stackwalk " + dmpFile + " ./symbols > crashlog")

原文:http://blog.csdn.net/zhtsuc/article/details/25790195

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐