打印tombstone堆栈脚本

原创 2012年03月30日 10:23:43
快速打印tombstone中堆栈对应函数和源码位置的命令:
将生成的堆栈信息,如
         #00  pc 000110d8  /system/lib/libc.so
         #01  pc 00050b44  /system/lib/libopencore_common.so
         #02  pc 0005094e  /system/lib/libopencore_common.so
         #03  pc 000efc58  /system/lib/libopencore_player.so
         #04  pc 000ebe44  /system/lib/libopencore_player.so
         #05  pc 000ec0b6  /system/lib/libopencore_player.so
         #06  pc 000161dc  /system/lib/libmediaplayerservice.so
         #07  pc 000162b2  /system/lib/libmediaplayerservice.so
         #08  pc 00016962  /system/lib/libmediaplayerservice.so
         #09  pc 00017a32  /system/lib/libmediaplayerservice.so
         #10  pc 000375dc  /system/lib/libmedia.so
 
注意不要包含其它内容,保存到linux android编译环境根目录下的某个文件如stack.txt,设置好编译环境后(不然会找不到arm-eabi-addr2line),运行:
awk '{for (i = 0; i <NF; ++i){if (i%4==3) system("arm-eabi-addr2line -f -e out/target/product/ua8200/symbols"$(i+1)" "$i)}}' < stack.txt
 
注意其中的product name ua8200根据实际情况修改,本例中得到结果如下:
pthread_key_delete
/home/sw/xgm/msm7x30/gingerbread/bionic/libc/bionic/pthread.c:1705
_ZN15OsclTLSRegistry7cleanupER13Oscl_DefAllocRi
/home/sw/xgm/msm7x30/gingerbread/external/opencore/oscl/oscl/osclbase/src/oscl_tls.cpp:181
_ZN8OsclBase7CleanupEv
/home/sw/xgm/msm7x30/gingerbread/external/opencore/oscl/oscl/osclbase/src/oscl_base.cpp:67
_Z21UninitializeForThreadv
/home/sw/xgm/msm7x30/gingerbread/external/opencore/android/thread_init.cpp:106
_ZN7android13doUsePVPlayerEPKc
/home/sw/xgm/msm7x30/gingerbread/external/opencore/android/playerdriver.cpp:2248
_ZN7android8PVPlayer11usePVPlayerEPKc
/home/sw/xgm/msm7x30/gingerbread/external/opencore/android/playerdriver.cpp:2383
_ZN7androidL20getDefaultPlayerTypeEPKc
/home/sw/xgm/msm7x30/gingerbread/frameworks/base/media/libmediaplayerservice/MediaPlayerService.cpp:686
_ZN7android13getPlayerTypeEPKc
/home/sw/xgm/msm7x30/gingerbread/frameworks/base/media/libmediaplayerservice/MediaPlayerService.cpp:791
_ZN7android18MediaPlayerService6Client13setDataSourceEPKcPKNS_11KeyedVectorINS_7String8ES5_EE
/home/sw/xgm/msm7x30/gingerbread/frameworks/base/media/libmediaplayerservice/MediaPlayerService.cpp:867
_ZN7android18MediaPlayerService6createEiRKNS_2spINS_18IMediaPlayerClientEEEPKcPKNS_11KeyedVectorINS_7String8ES9_EEi
/home/sw/xgm/msm7x30/gingerbread/frameworks/base/media/libmediaplayerservice/MediaPlayerService.cpp:263
_ZN7android20BnMediaPlayerService10onTransactEjRKNS_6ParcelEPS1_j
/home/sw/xgm/msm7x30/gingerbread/frameworks/base/media/libmedia/IMediaPlayerService.cpp:169
 
输出格式为
函数名
源文件:行数

相关文章推荐

shell脚本实现堆栈(模拟合服)

shell用数组模拟一个栈,每次弹出来栈顶的最上面两个元素,进行合服。 #!/bin/bash # test array and stack MAXTOP=5 #堆栈所能存放元素的最大...

打印函数堆栈

  • 2011年11月29日 23:23
  • 2KB
  • 下载

MyStaceTrace打印堆栈代码

  • 2014年03月21日 16:59
  • 4KB
  • 下载

tombstone & watchdog

http://blog.sina.com.cn/s/blog_704211f40100w5q5.html 现在的CPU基本上都带有WatchDog功能,这种硬件的WatchDog可以在系统死...
  • G_rrrr
  • G_rrrr
  • 2012年03月27日 17:01
  • 538

打印JAVA堆栈的方法

  • 2014年03月12日 21:51
  • 300B
  • 下载

android strictmode_dropbox_tombstone介绍

  • 2013年04月08日 14:33
  • 416KB
  • 下载

Tombstone crash

首先,android平台应用程序可能产生以下四种crash: App层: Force close crash ANR crash Native层: Tombstone crash Kern...

stack工具用于分析tombstone文件

  • 2014年07月19日 12:15
  • 11KB
  • 下载

如何调试分析Android中发生的tombstone

转自:http://zhidao.baidu.com/question/919637822161091339.html http://blog.csdn.net/haima1998/article/...

如何分析tombstone文件

tombstone一般是由Dalvik错误、状态监视调试器、C层代码以及libc的一些问题导致的。当系统发生tombstone的时候,kernel首先会上报一个严重的警告信号(signal),上层接收...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:打印tombstone堆栈脚本
举报原因:
原因补充:

(最多只允许输入30个字)