验证 Android Tombstone 是否工作

参考 http://blog.csdn.net/span76/article/details/44225415, 编写一个必然crash的程序

#include <stdio.h>

void f() {
  char *c=0;
    *c=0;

}

int main (void)
{
  printf("hello world");
  f();
  return 0;
}

编译后复制到 system/bin 下面

而后adb shell 登陆到device上运行,系统报告Segmentation fault (core dumped)

adb log 打印下面的信息

03-31 02:27:19.533    15    15 I DEBUG   : backtrace:

03-31 02:27:19.533    15    15 I DEBUG   :     #00  pc
00000514  /system/bin/pnp5

03-31 02:27:19.533    15    15 I DEBUG   :     #01  pc 00017c94  /system/lib/libc.so (__libc_init+84)

..

执行下面的命令定位到 source

prebuilts/gcc/linux-x86/x86/i686-linux-android-4.6/bin/i686-linux-android-addr2line -e out/target/product/Product1/symbols/system/bin/pnp5
0x00000514

结果如下,定位是准确的

/home/payne/zjb/pnp5/jni/main.c:5

时间: 2024-11-29 05:48:28

验证 Android Tombstone 是否工作的相关文章

Android系统Recovery工作原理之使用update.zip升级过程分析(六)---Recovery服务流程细节【转】

本文转载自:http://blog.csdn.net/mu0206mu/article/details/7465439  Android系统Recovery工作原理之使用update.zip升级过程分析(六)---Recovery服务流程细节            Recovery服务毫无疑问是Recovery启动模式中最核心的部分.它完成Recovery模式所有的工作.Recovery程序对应的源码文件位于:/gingerbread0919/bootable/recovery/recovery

Android系统Recovery工作原理之使用update.zip升级过程分析(一)

通过分析update.zip包在具体Android系统升级的过程,来理解Android系统中Recovery模式服务的工作原理.我们先从update.zip包的制作开始,然后是Android系统的启动模式分析,Recovery工作原理,如何从我们上层开始选择system update到重启到Recovery服务,以及在Recovery服务中具体怎样处理update.zip包升级的,我们的安装脚本updater-script怎样被解析并执行的等一系列问题.分析过程中所用的Android源码是gin

揭秘Android App的工作原理-乐居猫学Android开发

Android App的工作原理 Android系统是基于liunx内核的,但是与传统的基于liunx的pc系统不同,用户对Android app没有绝对的掌控权.pc系统中,在应用程序的系统菜单上选择"退出"或者"关闭"之类的选项会直接杀死进程.在Android系统中不是这样的.而是由系统,当系统需要释放内存来运行新进程或者保证某些后台进程和前端进程顺利执行的时候才会释放相应应用程序的资源,这个释放过程有一个重要性的层次,接下来就听乐居猫做一下说明: androi

Android Tombstone 分析

1.什么是tombstone 当一个动态库(native 程序)开始执行时,系统会注册一些连接到 debuggerd 的 signal handlers,当系统 crash 的时候,会保存一个 tombstone 文件到/data/tombstones目录下(Logcat中也会有相应的信息),文件的确就像墓碑一样记录了死亡了的进程的基本信息(例如进程的进程号,线程号),死亡的地址(在哪个地址上发生了 Crash),死亡时的现场是什么样的(记录了一系列的堆栈调用信息)等等. 2.tombstone

Android Tombstone/Crash的log分析和定位

有一句话叫做常在河边走,哪有不湿鞋.我们这些研究和开发Android的project师正应了这句话,相必大家在调试的时候常常会遇到这么个东西吧 *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** Build fingerprint: 'XXXXXXXXX' pid: 1658, tid: 13086  >>> system_server <<< signal 11 (SIGSEGV), code

Android系统Recovery工作原理之使用update.zip升级过程---updater-script脚本语法简介以及执行流程(转)

目前update-script脚本格式是edify,其与amend有何区别,暂不讨论,我们只分析其中主要的语法,以及脚本的流程控制. 一.update-script脚本语法简介: 我们顺着所生成的脚本来看其中主要涉及的语法. 1.assert(condition):如果condition参数的计算结果为False,则停止脚本执行,否则继续执行脚本. 2.show_progress(frac,sec):frac表示进度完成的数值,sec表示整个过程的总秒数.主要用与显示UI上的进度条. 3.for

一年工作经验的android菜鸟——找工作记

所面试的老板面试官可以分为几类,技术型,自命清高型,不懂技术型,国际范型. 不懂技术,过来就会问你的做的什么,不问技术细节,直接问你要产品, 技术型,考题了,然后细节上扣细节,问你技术细节,如linearLayout的比重在设置长度设定为包裹的时候,比重是怎么显示的等,很细 自命清高型,一来就问些是问题的问题,比如,怎么优化,感觉这些都是他最近遇到的问题,如listview滑动太快时出现的卡顿现象怎么办,想跟你分享最近的成就,希望得到你的认可一样. 国际范型,问很多开放性的问题,希望你能很主动的

2018年6月份Android上海找工作经历

前言首先介绍一下我的经历:本人 14 年毕业,在学校里面自学 Android 开发,在 cz 呆了三年,小城市,IT 不发达,倒闭了 2 家公司,然后杭州谋求发展,可参考以前写的一篇求职文章<杭州找Android工作的点点滴滴>,呆了一年,又倒闭了,哎,一言难尽呐!上个月,也就是 6 月份从杭州来到了上海,满打满算找工作到确认去这家公司用了二个星期.从 5 月份离职,中间去成都重庆玩了一个星期,然后在家又呆了二个星期,最后 6 月 11 号才开始找工作,在上海每天安排 2 场面试,有时候面试

Android 经常使用工作命令mmm,mm,m,croot,cgrep,jgrep,resgrep,godir

官方定义: Invoke ". build/envsetup.sh" from your shell to add the following functions to your environment: – croot: Changes directory to the top of the tree. – m: Makes from the top of the tree. – mm: Builds all of the modules in the current directo