众所周知,在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")