一种终端及其内核异常的日志存储方法及装置
【技术实现步骤摘要】
终端及其内核异常的日志存储方法及装置、可读存储介质
[0001]本专利技术涉及计算机
,尤其涉及一种终端及其内核异常的日志存储方法及装置
、
可读存储介质
。
技术介绍
[0002]在现有的智能终端的操作系统中,当发生芯片异常或者驱动加载失败时,容易发生定屏
、
死机
、
重启等问题,需要依赖日志对问题进行分析
。
[0003]在现有的一种终端的操作系统中,操作系统可以包含服务
(Native)
层和内核
(Kernel)
层
。
[0004]然而,对于内核层发生异常事件的情况,现有的日志存储方式不能满足需求
。
具体而言,在现有技术中,是由服务层进程读取并保存日志到系统分区的,但是如果在内核层启动中就出现了内核异常,如内核崩溃
(Kernel Crash)
或者宕机
(Panic)
等,用户空间进程无法接收到内核层的消息,服务层也就无法接收到并保存这部分日志,导致难以进行研发分析
。
[0005]亟需一种终端内核异常的日志存储方法,可以有效保存异常事件的日志,从而不必依赖返厂后的测试模式下复现故障问题,也能进行有效研发分析
。
技术实现思路
[0006]本专利技术解决的技术问题是提供一种终端及其内核异常的日志存储方法及装置
、
可读存储介质,可以有效保存异常事件的异常日志,从而不必依赖返厂后的测试模式下复现故障问题,也能进行有效研发分析
。
[0007]为解决上述技术问题,本专利技术实施例提供一种终端内核异常的日志存储方法,所述终端的操作系统包含内核层
、
服务层,所述方法包括:响应于所述内核层发生异常事件,通过所述服务层启动日志存储线程,其中,如果所述异常事件为需要重启所述操作系统的异常事件,则通过所述日志存储线程将所述异常日志存储至所述内核层内预先指定的非易失性存储空间;在重启操作系统后,通过所述日志存储线程在所述非易失性存储空间读取并保存所述异常日志
。
[0008]可选的,所述非易失性存储空间为在所述内核层内预先指定的裸分区
。
[0009]可选的,所述操作系统为安卓操作系统;其中,所述非易失性存储空间为所述内核层内部预先指定的持久存储空间
。
[0010]可选的,响应于所述内核层发生异常事件,通过所述服务层启动日志存储线程,包括:如果所述异常事件为需要重启所述操作系统的异常事件,则所述内核层通过网络链接发送异常事件消息通知给所述服务层
。
[0011]可选的,所述异常事件消息包括:事件时间
、
事件名称
、
模块名称
、
故障描述和附加信息;其中,所述附加信息包含:寄存器信息和
/
或堆栈信息;所述模块名称用于表示所述内核层中发生异常事件的模块
。
[0012]可选的,所述异常事件消息还包括:内核层的核心记录信息
。
[0013]可选的,所述事件时间
、
事件名称
、
模块名称
、
故障描述分别预分配有预设的固定字节长度;和
/
或,所述附加信息分配的是可变的字节长度
。
[0014]可选的,所述方法还包括:如果所述异常事件为不需要重启所述操作系统的异常事件,则通过所述日志存储线程将所述异常日志存储至磁盘
。
[0015]为解决上述技术问题,本专利技术实施例提供一种终端内核异常的日志存储装置,所述终端的操作系统包含内核层
、
服务层,所述装置包括:日志存储线程启动模块,用于响应于所述内核层发生异常事件,通过所述服务层启动日志存储线程,其中,如果所述异常事件为需要重启所述操作系统的异常事件,则通过所述日志存储线程将所述异常日志存储至所述内核层内预先指定的非易失性存储空间;重启后保存模块,用于在重启操作系统后,通过所述日志存储线程在所述非易失性存储空间读取并保存所述异常日志
。
[0016]为解决上述技术问题,本专利技术实施例提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器运行时执行上述的终端内核异常的日志存储方法的步骤
。
[0017]为解决上述技术问题,本专利技术实施例提供一种终端,包括存储器和处理器,所述存储器上存储有能够在所述处理器上运行的计算机程序,所述处理器运行所述计算机程序时执行上述的终端内核异常的日志存储方法的步骤
。
[0018]与现有技术相比,本专利技术实施例的技术方案具有以下有益效果:
[0019]在本专利技术实施例中,通过在内核层发生异常事件的情况下,通过终端的操作系统包含的服务层启动日志存储线程,可以启动异常日志存储;并且在异常事件为需要重启所述操作系统的异常事件时,可以将所述异常日志存储至所述内核层内预先指定的非易失性存储空间,从而利用非易失性存储空间对异常日志进行存储,实现在内核层发生异常事件导致重启操作系统的过程中,有效保存异常事件的异常日志,从而不必依赖返厂后的测试模式下复现故障问题,也能进行有效研发分析
。
[0020]进一步,所述非易失性存储空间为在所述内核层内预先指定的裸分区
(raw partition)
,由于裸分区未被格式化过,不被操作系统直接管理,而是可以由内核层实现读写操作,因此通过日志存储线程将所述异常日志存储至所述内核层内预先指定的裸分区,可以获得更好的存储共性,并增强数据的保护性
。
进一步地,在内核异常事件中,如内核崩溃
(Kernel Crash)
或者宕机
(Panic)
等,往往具有发生速度快
、
处理时间压力大等特点,在本专利技术实施例中,通过采用内核层内预先指定的裸分区,可以提高异常日志的存储效率和完整性,并增强数据安全性
。
[0021]进一步,所述操作系统为安卓操作系统;其中,所述非易失性存储空间为所述内核层内部预先指定的持久存储空间
(Persistent Store)
,由于该持久存储空间同时具备内存的低时延字节寻址和磁盘的持久化特性,可以在采用安卓操作系统时,获得更好的存储安全性和持久性
。
进一步地,在内核异常事件中,如内核崩溃或者宕机等,往往具有发生速度快
、
处理时间压力大等特点,在本专利技术实施例中,通过采用内核层内预先指定的持久存储空间,还可以提高异常日志的存储效率和完整性
。
[0022]进一步,如果所述异常事件为需要重启所述操作系统的异常事件,则所述内核层通过网络链接
(Netlink)
发送异常事件
(EventInfo)
消息通知给所述服务层,可以实现在内核空间与用户空间之间的通信,从本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.
一种终端内核异常的日志存储方法,其特征在于,所述终端的操作系统包含内核层
、
服务层,所述方法包括:响应于所述内核层发生异常事件,通过所述服务层启动日志存储线程,其中,如果所述异常事件为需要重启所述操作系统的异常事件,则通过所述日志存储线程将异常日志存储至所述内核层内预先指定的非易失性存储空间;在重启操作系统后,通过所述日志存储线程在所述非易失性存储空间读取并保存所述异常日志
。2.
根据权利要求1所述的方法,其特征在于,所述非易失性存储空间为在所述内核层内预先指定的裸分区
。3.
根据权利要求1所述的方法,其特征在于,所述操作系统为安卓操作系统;其中,所述非易失性存储空间为所述内核层内部预先指定的持久存储空间
。4.
根据权利要求1所述的方法,其特征在于,响应于所述内核层发生异常事件,通过所述服务层启动日志存储线程,包括:如果所述异常事件为需要重启所述操作系统的异常事件,则所述内核层通过网络链接发送异常事件消息通知给所述服务层
。5.
根据权利要求4所述的方法,其特征在于,所述异常事件消息包括:事件时间
、
事件名称
、
模块名称
、
故障描述和附加信息;其中,所述附加信息包含:寄存器信息和
/
或堆栈信息;所述模块名称用于表示所述内核层中发生异常事件的模块
。6.
根据权利要求5所述的方法,其特征在于,所述异常事件消息还包括:内核层...
【专利技术属性】
技术研发人员:于广强,阳志杰,贾萍萍,
申请(专利权)人:展讯通信上海有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。