crash 工具是redhat 公司开发的,其原理是用了 kexec 和 kdump 机制,在内核oops ,panic 时在最后的内核代码处理系统错误时增加了相应的代码,内核代码编译成了一个elf 格式的文件,在运行时会放在内存的某个地址,在内核出现问题时,就会把这个内存地址的elf 文件写到外设磁盘的文件上,也就是coredump 文件,然后用crash 解析,这个一般需要编译内核时打开debug 选项,还有其它选项,现在android 平台都实现的相应的机制,mtk ,高通有各种实现,,如果只是要看调用栈,寄存机器信息,androdi 都有些简单通用实现,保留内存一段空间,kernel panic 时,把寄存器,需要的信息直接写到保留的内存,系统重新启动时,再在用户空间读取哪块保留的内存中的内容,android 提供的接口好像是 cat /proc/apanic
--
FROM 223.104.3.*