tombstone一般是由Dalvik错误、状态监视调试器、C层代码以及libc的一些问题导致的。当系统发生tombstone的时候,kernel首先会上报一个严重的警告信号(signal),上层接收到之后,进程的调试工具会把进程中当时的调用栈现场保存起来,并在系统创建了data/tombstones目录后把异常时的进程信息写在此目录里面,开发者需要通过调用栈来分析整个调用流程来找出出问题的点。
通常出现错误后可以查看tombstone_0*来查看对应的堆栈信息,例如:
cat /data/tombstones/tombstone_0* 或者 head -N /data/tombstones/tombstone_0*
如果需要查看某一个进程的堆栈也可以,例如:
debuggerd PID 就会将对应进程号的进程堆栈信息存放至/data/tombstones/tombstone_0*文件中。
更多可以参考,http://dylangao.com/2014/05/16/android-debuggerd-简要介绍和源码分析/