CN105786680B - 内核崩溃后内存预分析方法及其系统 - Google Patents

内核崩溃后内存预分析方法及其系统 Download PDF

Info

Publication number
CN105786680B
CN105786680B CN201610088049.6A CN201610088049A CN105786680B CN 105786680 B CN105786680 B CN 105786680B CN 201610088049 A CN201610088049 A CN 201610088049A CN 105786680 B CN105786680 B CN 105786680B
Authority
CN
China
Prior art keywords
kernel
information
collapse point
collapse
panic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201610088049.6A
Other languages
English (en)
Other versions
CN105786680A (zh
Inventor
陈杰
沈伟亮
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BEIJING FORTUNET INFORMATION TECHNOLOGY CO LTD
Original Assignee
BEIJING FORTUNET INFORMATION TECHNOLOGY CO LTD
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by BEIJING FORTUNET INFORMATION TECHNOLOGY CO LTD filed Critical BEIJING FORTUNET INFORMATION TECHNOLOGY CO LTD
Priority to CN201610088049.6A priority Critical patent/CN105786680B/zh
Publication of CN105786680A publication Critical patent/CN105786680A/zh
Application granted granted Critical
Publication of CN105786680B publication Critical patent/CN105786680B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

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

Description

内核崩溃后内存预分析方法及其系统
技术领域
本发明涉及内核技术领域,尤其涉及一种内核崩溃后内存预分析方法及其系统。
背景技术
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从转存的原始内核文件中得出崩溃点信息,并从崩溃点信息中反编译得出崩溃点的源代码信息,以作为除错信息。上述内核崩溃后内存预分析方法不需再保存完整的内存数据,而只需保存必要数据信息,从而能够加快除错信息的存储,可有效降低存储除错信息所需要的时间和空间,以及能够减少系统内核错误复原所需的时间。
基于同一发明构思,本发明还提出一种内核崩溃后内存预分析系统。参见图2,一个实施例中,内核崩溃后内存预分析系统可以包括侦测转存模块100、判断开启模块200、崩溃点信息获取模块300和崩溃点源代码信息获取模块400。其中,侦测转存模块100、判断开启模块200、崩溃点信息获取模块300和崩溃点源代码信息获取模块400依次连接。
侦测转存模块100用于侦测到内核崩溃时,转存原始内核文件。
其中,在侦测到系统内核崩溃时,侦测转存模块100可以从系统自带的内核压缩文件中解压出原始内核文件,然后转存到预设存储位置。
一个实施例中,侦测转存模块100可以通过Kdump技术将解压出的原始内核文件,转存到预设存储位置,为接下的步骤做准备。Kdump技术为本领域技术人员所熟知的技术,故在此不在赘述。
判断开启模块200用以判断内核是否开启CONFIG_DEBUG_INFO。
崩溃点信息获取模块300用于当内核开启CONFIG_DEBUG_INFO时,从原始内核文件中得到崩溃点信息。
本实施例中,在系统内核的CONFIG_DEBUG_INFO项开启时,崩溃点信息获取模块300可以通过内核的CONFIG_DEBUG_INFO功能从侦测转存模块100转存的原始内核文件中获取到崩溃点信息。其中,崩溃点信息可以包括崩溃点的虚拟地址和崩溃点的偏移量等信息。另外,崩溃点信息还可以包括崩溃点的位移地址及程序函数卷标等信息。
崩溃点源代码信息获取模块400用于从崩溃点信息中得出崩溃点的源代码信息。
一个实施例中,在崩溃点信息获取模块300从原始内核文件中得到崩溃点信息后,崩溃点源代码信息获取模块400可以对崩溃点信息进行反编译,从而得出崩溃点的源代码信息。用户从崩溃点的源代码信息中能够对系统内核的崩溃情况进行分析,以及对内核进行改进。
进一步的,内核崩溃后内存预分析系统还可以包括与判断开启模块200、所述崩溃点源代码信息获取模块400分别连接的系统信息存储模块500。系统信息存储模块500用于获取相关的系统信息并存储。
其中,相关的系统信息可以包括内核崩溃时的挂载信息、内核崩溃时所有进程清单、内核崩溃时执行中的进程清单、内核崩溃时已载入的模块列表和原始崩溃信息中的一种以上的信息。
优选的,崩溃点信息获取模块300可以通过对崩溃点信息进行反编译,并判断是否反编译成功。若反编译成功,则得出崩溃点的源代码信息,且系统信息存储模块500获取相关的系统信息并存储。而在崩溃点信息获取模块300对崩溃点信息进行反编译失败时,可直接通知系统信息存储模块500工作,以获取相关的系统信息并存储。如此设置能够在未成功获取到崩溃点的源代码信息时,在一定限度上得知崩溃点地址及崩溃的函数,以对系统内核的崩溃进行分析。
优选的,若崩溃点信息获取模块300侦测到系统内核未开启CONFIG_DEBUG_INFO选项时,可以直接通知系统信息存储模块500工作,以获取相关的系统信息并存储。如此设置能够使得系统内核在未开启CONFIG_DEBUG_INFO选项时仍然能够获取相关的系统信息,能够在一定限度上得知崩溃点地址及崩溃的函数,以对系统内核的崩溃进行分析。
上述内核崩溃后内存预分析系统,通过CONFIG_DEBUG_INFO从转存的原始内核文件中得出崩溃点信息,并从崩溃点信息中反编译得出崩溃点的源代码信息,以作为除错信息。上述内核崩溃后内存预分析方法不需再保存完整的内存数据,而只需保存必要数据信息,从而能够加快除错信息的存储,可有效降低存储除错信息所需要的时间和空间,以及能够减少系统内核错误复原所需的时间。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。

Claims (10)

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

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610088049.6A CN105786680B (zh) 2016-02-17 2016-02-17 内核崩溃后内存预分析方法及其系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610088049.6A CN105786680B (zh) 2016-02-17 2016-02-17 内核崩溃后内存预分析方法及其系统

Publications (2)

Publication Number Publication Date
CN105786680A CN105786680A (zh) 2016-07-20
CN105786680B true CN105786680B (zh) 2018-06-05

Family

ID=56402399

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610088049.6A Expired - Fee Related CN105786680B (zh) 2016-02-17 2016-02-17 内核崩溃后内存预分析方法及其系统

Country Status (1)

Country Link
CN (1) CN105786680B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110704302B (zh) * 2019-09-02 2020-07-10 贝壳找房(北京)科技有限公司 映射关系建立方法、装置及系统崩溃分流的方法与装置
CN112084086B (zh) * 2020-08-14 2024-03-22 北京字节跳动网络技术有限公司 一种信息收集方法、装置、介质和电子设备
CN113434150B (zh) * 2021-08-30 2021-12-17 麒麟软件有限公司 一种Linux内核崩溃信息定位方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101719090A (zh) * 2009-12-25 2010-06-02 珠海市君天电子科技有限公司 对计算机软件系统崩溃原因进行自动分析的方法
CN103106132A (zh) * 2013-03-05 2013-05-15 中标软件有限公司 Linux系统崩溃时内核函数调用栈分析调试方法
US8838430B1 (en) * 2011-08-26 2014-09-16 Cadence Design Systems, Inc. Detection of memory access violation in simulations

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101719090A (zh) * 2009-12-25 2010-06-02 珠海市君天电子科技有限公司 对计算机软件系统崩溃原因进行自动分析的方法
US8838430B1 (en) * 2011-08-26 2014-09-16 Cadence Design Systems, Inc. Detection of memory access violation in simulations
CN103106132A (zh) * 2013-03-05 2013-05-15 中标软件有限公司 Linux系统崩溃时内核函数调用栈分析调试方法

Also Published As

Publication number Publication date
CN105786680A (zh) 2016-07-20

Similar Documents

Publication Publication Date Title
CN109783342B (zh) 脚本调试方法、设备及计算机存储介质
CN105786680B (zh) 内核崩溃后内存预分析方法及其系统
CN102479138A (zh) 利用图像进行错误侦测的系统及方法
CN108241580B (zh) 客户端程序的测试方法及终端
CN101156137A (zh) 选择子例程返回机制
CN104850475B (zh) 一种设备的测试方法及装置
CA2561204A1 (en) System and method for recovering from a software processing error
CN107423213A (zh) 一种文件描述符分配检测方法和装置
CN109408261B (zh) 应用程序崩溃处理方法、装置、计算机设备和存储介质
CN104598128A (zh) 一种基于用户操作行为来推荐解决方案的方法及装置
CN102736586A (zh) 一种纯电动汽车的整车控制器及系统引导方法
EP2960777A1 (en) Data protection method, apparatus and device
CN106845235A (zh) 一种基于机器学习方法的安卓平台回调函数检测方法
CN106055471A (zh) 一种测试方法及终端
CN107608879B (zh) 一种故障检测方法、装置和存储介质
CN105912417A (zh) 虚拟系统的检测方法和相关软件运行方法以及相关装置
CN114625106B (zh) 车辆诊断的方法、装置、电子设备及存储介质
CN105912431A (zh) 服务器reboot测试方法、服务器、控制器和系统
CN106933604A (zh) 一种系统升级方法及装置
CN104317673A (zh) 应用程序的回收方法、装置及其恢复方法、装置
CN107590382A (zh) 一种基于虚拟机动态执行的恶意软件检测分析方法与装置
CN113535581A (zh) 测试脚本生成方法、装置、设备及计算机可读存储介质
CN100357905C (zh) 一种地址总线的故障检测方法
CN111797016A (zh) 应用程序的测试方法、设备、存储介质及装置
EP4354308A2 (en) Computer system and method for evaluating integrity and parsing of a file system and parsing implementation

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180605