Android dump .so 文件crash log

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

Android dump .so 文件crash log,布布扣,bubuko.com

时间: 2024-10-19 23:30:20

Android dump .so 文件crash log的相关文章

Android Native/Tombstone Crash Log 详细分析(转)

转自:http://weibo.com/p/230418702c2db50102vc2h Android 虽然已经有好几年了,但是NDK的开放速度却非常缓慢,所以目前网络上针对对Android NativeCrash的分析说明还比较少,尤其是非常详细的分析方式更难以查询.因此大部分程序员在遇到难以进行addr2line的crashlog时,会一筹莫展.事实上这份log中的其他部分同样提供了非常丰富的信息可供解读,所以在这里总结一下对在这方面的一些经验,在这里以Androidsamples中的he

crash log具体流程概述

crash log具体流程概述 当某服务或者native code程序crash产生调试信息后有两中去向: 1.写入到logcat: 这种信息可以通过adb shell中的logcat中察看到. 2.写入到系统的/data/tombstones/文件夹中: 创建tombstone_xx文件后写入信息,xx 从00开始,最大支持49个tombstone_xx文件,超出后会从00开始重新写入覆盖之前. 当某一进程crash以后会向系统发送信号,信号在某个地方会被拦截下来发送给android的处理函数

Oracle 联机重做日志文件(ONLINE LOG FILE)

--========================================= -- Oracle 联机重做日志文件(ONLINE LOG FILE) --========================================= 一.Oracle中的几类日志文件 Redo log files      -->联机重做日志 Archive log files   -->归档日志 Alert log files     -->告警日志 Trace files        

Android上传文件至服务器(转)

本实例实现每隔5秒上传一次,通过服务器端获取手机上传过来的文件信息并做相应处理:采用Android+Struts2技术. 一.Android端实现文件上传 1).新建一个Android项目命名为androidUpload,目录结构如下: 2).新建FormFile类,用来封装文件信息 package com.ljq.utils; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundExce

IOS crash log分析

此处不讨论具体的如何根据.dsym文件解析crash log的方式. 一.一般的崩溃 1.违反苹果的政策:启动.恢复.暂停或退出超时; 用户强制退出: 低内存退出:MemoryWarning; 2.程序中有bug 二.崩溃解析说明 1.MemoryWarning的崩溃比较特别,没有任何trace,标志性信息即某一条trace后面有“jettisoned”. 解决方法: 可用Allocations.Leaks Instruments 或VM Tracker Instrument来帮助检查.另外,解

Android修改XML文件

最近在项目中需要使用XML记录数据,网上这方面的文章较少,记录一下 使用DOM方式 [java] view plaincopy /** * 追加内容到XML文档 * @param instructions * @throws ParserConfigurationException * @throws SAXException * @throws IOException * @throws TransformerException */ public void append2XML(String

Android上传文件到服务器

分类: android 网络编程 android2012-09-07 23:53 12656人阅读 评论(4) 收藏 举报 androidbuffernullfilejava Android要实现文件上传,可以利用Socket上传,也可以模拟Web进行上传,但是如果是使用第一种方式上传,严格的话就得使用TCP,这样容易生成系统死掉,或者是长时间等待,如果是UDP来传,就容易造成数据丢失,因此在这里选择了Web进行上传,使用Web进行上传是模拟的Http Post上传数据,当然,Post上传数据的

IOS崩溃日志解析(crash log)

IOS的应用程序少不了crash,互联网统计分析工具友盟有一项目错误分析的功能,专门用于应用程序崩溃日志统计,最近研究友盟上统计到的崩溃日志,在此对崩溃日志做一个简单的总结. IOS崩溃日志分类: 一.低内存崩溃:IOS设备检测到低内存时,虚拟内存系统发出通知请求应用释放内存.这些通知发送到所有正在运行的应用和进程,试图收回一些内存.如果内存使用依然居高不下,系统将会终止后台线程以缓解内存压力.如果可用内存足够,应用将能够继续运行而不会产生崩溃报告.否则,应用将被iOS终止,并产生低内存崩溃报告

Crash log符号化与调试信息

这篇文章主要整理了crash log的符号化解析和调试信息与配置相关的一些内容. 对于做移动App开发的来说,质量和体验都是很重要的.一个客户端应用如果经常“闪退”,是产品质量很差的一个体现,用户体验就更不用提了.所以开发一个优秀的App,首先是保证自身的技术质量,尽量杜绝“闪退”,也就是“Crash”.但客户端上线后,偶尔出现一个隐藏很深的bug也在所难免.我们所能做的就是尽可能的收集问题相关的信息,争取在将来的新版本中解决和改进. 0. Crash 一个App启动之后,用着用着就突然被iOS