打印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 #堆栈所能存放元素的最大...
  • eclipse_c
  • eclipse_c
  • 2017年05月26日 16:48
  • 323

Android下打印堆栈的两种方法

1     for(StackTraceElement i:Thread.currentThread().getStackTrace()){         System.out.printl...
  • huangyabin001
  • huangyabin001
  • 2014年05月29日 10:31
  • 3268

windows VS 下打印堆栈日志

别人的源码地址 http://www.codeproject.com/Articles/11132/Walking-the-callstack
  • HeroRazor
  • HeroRazor
  • 2015年11月12日 10:23
  • 1126

Log4j 打印堆栈信息

log4j输出异常堆栈信息
  • qq_15325579
  • qq_15325579
  • 2016年11月22日 23:32
  • 1997

android 中native 层的打印堆栈(c++)

android N 发布了一段时间了,在看代码的过程中,肯定要有调试的地方,看下调用什么的。想打印一下调用堆栈。 可以包含头文件 一般都包含该头文件。 定义    android::Cal...
  • haohaoyue01
  • haohaoyue01
  • 2016年09月13日 16:11
  • 1374

打印函数调用的堆栈信息

有些时候为了便于调试,我们需要记录函数调用的堆栈信息。为此,封装了一个类StackDumper,在相应的函数中调用该类的成员函数即可。stack_dumper.h #ifndef STACK_DUMP...
  • AnonymousRookie
  • AnonymousRookie
  • 2016年07月02日 23:59
  • 2158

jmap命令打印堆栈信息文件

内存溢出不要怕,我们来分析分析
  • u010686469
  • u010686469
  • 2017年08月18日 10:24
  • 190

vc c++ 打印运行时堆栈信息

c++打印运行时堆栈信息void printStack( void ) { unsigned int i; void * stack[ 100 ]; ...
  • littlewhistler
  • littlewhistler
  • 2016年08月26日 14:53
  • 1169

python打印堆栈信息

import logging import traceback def testPrintStackInfo(self): try: 1 / 0 # 触发...
  • friendan
  • friendan
  • 2016年04月08日 13:16
  • 8208

在linux kernel中打印函数调用的堆栈的方法

在linux内核调试中,经常用到的打印函数调用堆栈的方法非常简单,只需在需要查看堆栈的函数中加入: dump_stack();或 __backtrace();即可。   dump_s...
  • xishuang_gongzi
  • xishuang_gongzi
  • 2016年05月05日 21:02
  • 3714
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:打印tombstone堆栈脚本
举报原因:
原因补充:

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