内核崩溃后内存预分析方法及其系统技术方案

技术编号:13390539 阅读:36 留言:0更新日期:2016-07-22 14:06
本发明专利技术公开一种内核崩溃后内存预分析方法,包括:侦测到内核崩溃时,转存原始内核文件;判断内核是否开启CONFIG_DEBUG_INFO;若内核开启CONFIG_DEBUG_INFO,则从原始内核文件中得到崩溃点信息,崩溃点信息包括崩溃点的虚拟地址和崩溃点的偏移量;从崩溃点信息中得出崩溃点的源代码信息。上述内核崩溃后内存预分析方法不需再保存完整的内存数据,而只需保存必要数据,从而能够加快除错信息的存储,可有效降低存储除错信息所需要的时间和空间,以及能够减少系统内核错误复原所需的时间。本发明专利技术还公开一种内核崩溃后内存预分析系统。

【技术实现步骤摘要】
内核崩溃后内存预分析方法及其系统
本专利技术涉及内核
,尤其涉及一种内核崩溃后内存预分析方法及其系统。
技术介绍
Kexec是一个用软件实现的内核再加载系统,Kdump技术则可进行内存崩溃转存,可用来实现Linux系统内核崩溃后自动捕捉内核崩溃信息,用于后续的除错工作。Kexec捕捉崩溃信息的方式为完整保留内存数据,不对内存数据进行初始化。而完整保留内存数据会对存储空间和时间造成浪费,同时也会影响到系统恢复到正常状态的时间。且后续的除错工作只需要系统内核崩溃部分对应的信息即可。
技术实现思路
基于此,有必要提供一种能够较快存储内核崩溃信息的内核崩溃后内存预分析方法及其系统。一种内核崩溃后内存预分析方法,包括以下步骤:侦测到内核崩溃时,转存原始内核文件;判断内核是否开启CONFIG_DEBUG_INFO;若内核开启CONFIG_DEBUG_INFO,则从所述原始内核文件中得到崩溃点信息;所述崩溃点信息包括崩溃点的虚拟地址和崩溃点的偏移量;从所述崩溃点信息中得出崩溃点的源代码信息。在其中一个实施例中,还包括步骤:获取相关的系统信息并存储;其中,所述相关的系统信息包括内核崩溃时的挂载信息、内核崩溃时所有进程清单、内核崩溃时执行中的进程清单、内核崩溃时已载入的模块列表和原始崩溃信息中的一种以上的信息。在其中一个实施例中,若内核未开启CONFIG_DEBUG_INFO,则执行所述获取相关的系统信息并存储步骤。在其中一个实施例中,所述从所述崩溃点信息中得出崩溃点的源代码信息步骤中包括:对所述崩溃点信息进行反编译,判断是否反编译成功;若对所述崩溃点信息进行反编译成功,则得出所述崩溃点的源代码信息,执行所述获取相关的系统信息并存储步骤;若对所述崩溃点信息进行反编译失败,则执行所述获取相关的系统信息并存储步骤。在其中一个实施例中,在所述侦测到内核崩溃时,转存原始内核文件步骤中,侦测到内核崩溃时,通过Kdump技术对所述原始内核文件进行转存。一种内核崩溃后内存预分析系统,包括侦测转存模块、判断开启模块、崩溃点信息获取模块和崩溃点源代码信息获取模块;所述侦测转存模块、所述判断开启模块、所述崩溃点信息获取模块和所述崩溃点源代码信息获取模块依次连接;所述侦测转存模块用于侦测到内核崩溃时,转存原始内核文件;所述判断开启模块用以判断内核是否开启CONFIG_DEBUG_INFO;所述崩溃点信息获取模块用于当内核开启CONFIG_DEBUG_INFO时,从所述原始内核文件中得到崩溃点信息,所述崩溃点信息包括崩溃点的虚拟地址和崩溃点的偏移量;所述崩溃点源代码信息获取模块用于从所述崩溃点信息中得出崩溃点的源代码信息。在其中一个实施例中,还包括与所述判断开启模块、所述崩溃点源代码信息获取模块分别连接的系统信息存储模块;所述系统信息存储模块用于获取相关的系统信息并存储;所述相关的系统信息包括内核崩溃时的挂载信息、内核崩溃时所有进程清单、内核崩溃时执行中的进程清单、内核崩溃时已载入的模块列表和原始崩溃信息中的一种以上的信息。在其中一个实施例中,若所述判断开启模块判断出系统内核未开启CONFIG_DEBUG_INFO时,所述系统信息存储模块获取所述相关的系统信息并存储。在其中一个实施例中,所述崩溃点源代码信息获取模块对所述崩溃点信息进行反编译,并判断是否反编译成功;若反编译成功,则得出所述崩溃点源代码信息,所述系统信息存储模块获取所述相关的系统信息并存储;若所述崩溃点信息获取模块对所述崩溃点信息进行反编译失败时,所述系统信息存储模块获取所述相关的系统信息并存储。在其中一个实施例中,所述侦测转存模块侦测到内核崩溃时,通过Kdump技术对所述原始内核文件进行转存。上述内核崩溃后内存预分析方法及其系统,通过CONFIG_DEBUG_INFO从转存的原始内核文件中得出崩溃点信息,并从崩溃点信息中得出崩溃点的源代码信息,以作为除错信息。因此,上述内核崩溃后内存预分析方法及其系统,不需再保存完整的内存数据,而只需保存必要数据,从而能够加快除错信息的存储,可有效降低存储除错信息所需要的时间和空间,以及能够减少系统内核错误复原所需的时间。附图说明图1为本专利技术内核崩溃后内存预分析方法一个实施例的流程示意图;图2为本专利技术内核崩溃后内存预分析系统一个实施例的结构示意图。具体实施方式为使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图对本专利技术内核崩溃后内存预分析方法及其系统的具体实施方式进行说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。参见图1,一个实施例中,内核崩溃后内存预分析方法可以包括以下步骤:S101,侦测到内核崩溃时,转存原始内核文件。其中,在侦测到系统内核崩溃时,可以从系统自带的内核压缩文件中解压出原始内核文件,然后转存到预设存储位置。一个实施例中,可以通过Kdump技术将解压出的原始内核文件,转存到预设存储位置,为接下的步骤做准备。Kdump技术为本领域技术人员所熟知的技术,故在此不在赘述。S102,判断内核是否开启CONFIG_DEBUG_INFO。S103,若内核开启CONFIG_DEBUG_INFO,则从原始内核文件中得到崩溃点信息。其中,本步骤需要系统内核的CONFIG_DEBUG_INFO项开启,从而通过内核的CONFIG_DEBUG_INFO功能从步骤S101得到的原始内核文件中获取到崩溃点信息。本实施例中,崩溃点信息可以包括崩溃点的虚拟地址和崩溃点的偏移量等信息。另外,崩溃点信息还可以包括崩溃点的位移地址及程序函数卷标等信息。S104,从崩溃点信息中得出崩溃点的源代码信息。一个实施例中,从原始内核文件中得到崩溃点信息后,可以对崩溃点信息进行反编译,从而得出崩溃点的源代码信息。用户从崩溃点的源代码信息中能够对系统内核的崩溃情况进行分析,以及对内核进行改进。进一步的,内核崩溃后内存预分析方法还可以包括:S105,获取相关的系统信息并存储。其中,相关的系统信息可以包括内核崩溃时的挂载信息、内核崩溃时所有进程清单、内核崩溃时执行中的进程清单、内核崩溃时已载入的模块列表和原始崩溃信息中的一种以上的信息。优选的,在步骤S104中,可以通过对崩溃点信息进行反编译,判断是否反编译成功。若对崩溃点信息进行反编译成功,则得出崩溃点的源代码信息,并执行步骤S105。而在对崩溃点信息进行反编译失败时,可直接执行步骤S105。如此设置能够在未成功获取到崩溃点的源代码信息时,在一定限度上得知崩溃点地址及崩溃的函数,以对系统内核的崩溃进行分析。优选的,若在执行步骤S102时,侦测到内核未开启CONFIG_DEBUG_INFO选项,则可以直接执行步骤S105。如此设置能够使得系统内核在未开启CONFIG_DEBUG_INFO选项时仍然能够获取相关的系统信息,能够在一定限度上得知崩溃点地址及崩溃的函数,以对系统内核的崩溃进行分析。上述内核崩溃后内存预分析方法,通过CONFIG_DEBUG_INFO从转存的原始内核文件中得出崩溃点信息,并从崩溃点信息中反编译得出崩溃点的源代码信息,以作为除错信息。上述内核崩溃后内存预分析方法不需再保存完整的内存数据,而只需保存必要数据信息,从而能够加快除错信息的存储,可有效降低存储除错信息所需本文档来自技高网...
内核崩溃后内存预分析方法及其系统

【技术保护点】
一种内核崩溃后内存预分析方法,其特征在于,包括以下步骤:侦测到内核崩溃时,转存原始内核文件;判断内核是否开启CONFIG_DEBUG_INFO;若内核开启CONFIG_DEBUG_INFO,则从所述原始内核文件中得到崩溃点信息,所述崩溃点信息包括崩溃点的虚拟地址和崩溃点的偏移量;从所述崩溃点信息中得出崩溃点的源代码信息。

【技术特征摘要】
1.一种内核崩溃后内存预分析方法,其特征在于,包括以下步骤:侦测到内核崩溃时,转存原始内核文件;判断内核是否开启CONFIG_DEBUG_INFO;若内核开启CONFIG_DEBUG_INFO,则从所述原始内核文件中得到崩溃点信息,所述崩溃点信息包括崩溃点的虚拟地址和崩溃点的偏移量;从所述崩溃点信息中得出崩溃点的源代码信息;所述内核崩溃后内存预分析方法,通过内核的CONFIG_DEBUG_INFO功能从所述原始内核文件中得到崩溃点信息;在得出崩溃点的源代码信息后,从崩溃点的源代码信息中对系统内核的崩溃情况进行分析。2.根据权利要求1所述的内核崩溃后内存预分析方法,其特征在于,还包括步骤:获取相关的系统信息并存储;其中,所述相关的系统信息包括内核崩溃时的挂载信息、内核崩溃时所有进程清单、内核崩溃时执行中的进程清单、内核崩溃时已载入的模块列表和原始崩溃信息中的一种以上的信息。3.根据权利要求2所述的内核崩溃后内存预分析方法,其特征在于,若内核未开启CONFIG_DEBUG_INFO,则执行所述获取相关的系统信息并存储步骤。4.根据权利要求2所述的内核崩溃后内存预分析方法,其特征在于,所述从所述崩溃点信息中得出崩溃点的源代码信息步骤中包括:对所述崩溃点信息进行反编译,判断是否反编译成功;若对所述崩溃点信息进行反编译成功,则得出所述崩溃点的源代码信息,执行所述获取相关的系统信息并存储步骤;若对所述崩溃点信息进行反编译失败,则执行所述获取相关的系统信息并存储步骤。5.根据权利要求1所述的内核崩溃后内存预分析方法,其特征在于,在所述侦测到内核崩溃时,转存原始内核文件步骤中,侦测到内核崩溃时,通过Kdump技术对所述原始内核文件进行转存。6.一种内核崩溃后内存预分析系统,其特征在于,包括侦测转存模块、判断开启模块、崩溃点信息获取模块和崩溃点源代码信息获取模块;所述侦测转存模块、所述判断开启模块、所述崩溃点信息获取模...

【专利技术属性】
技术研发人员:陈杰沈伟亮
申请(专利权)人:北京飞杰信息技术有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1