CN109189612A - 一种Linux内核异常时的日志处理方法及电子设备 - Google Patents

一种Linux内核异常时的日志处理方法及电子设备 Download PDF

Info

Publication number
CN109189612A
CN109189612A CN201811028362.6A CN201811028362A CN109189612A CN 109189612 A CN109189612 A CN 109189612A CN 201811028362 A CN201811028362 A CN 201811028362A CN 109189612 A CN109189612 A CN 109189612A
Authority
CN
China
Prior art keywords
kernel
electronic equipment
subregion
abnormal
address
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.)
Granted
Application number
CN201811028362.6A
Other languages
English (en)
Other versions
CN109189612B (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.)
Guangdong Genius Technology Co Ltd
Original Assignee
Guangdong Genius 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 Guangdong Genius Technology Co Ltd filed Critical Guangdong Genius Technology Co Ltd
Priority to CN201811028362.6A priority Critical patent/CN109189612B/zh
Publication of CN109189612A publication Critical patent/CN109189612A/zh
Application granted granted Critical
Publication of CN109189612B publication Critical patent/CN109189612B/zh
Active 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/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1415Saving, restoring, recovering or retrying at system level
    • G06F11/1438Restarting or rejuvenating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3065Monitoring arrangements determined by the means or processing involved in reporting the monitored data

Landscapes

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

Abstract

本发明实施例涉及计算机技术领域,公开了一种Linux内核异常时的日志处理方法及电子设备,该方法包括:当电子设备Linux内核发生异常时,热重启该电子设备的系统;获取预先存储的内核寄存器地址;从电子设备中读取目标内核寄存器的内核日志数据,其中,该目标内核寄存器与内核寄存器地址相对应;将该内核日志数据存储至电子设备外部闪存的异常分区中。实施本发明实施例,能够在电子设备Linux内核异常的第一时刻,及时存储下来内核日志数据,能够日后为内核异常分析提供依据,提高异常日志分析的有效性。

Description

一种Linux内核异常时的日志处理方法及电子设备
技术领域
本发明涉及计算机技术领域,尤其涉及一种Linux内核异常时的日志处理方法及电子设备。
背景技术
手表、智能手机等电子设备在人们的日常生活中起到越来越重要的作用,部分手表、智能手机等电子设备采用的是Linux嵌入式操作系统。这些电子设备在出厂之前,会进行RAMDump功能、SysDump功能等调试,并在出厂时,将RAMDump功能、SysDump功能等调试手段关闭。
用户在使用这些电子设备时,如果出现Linux内核异常造成无法正常工作时,将导致用户无法正常使用该电子设备,严重影响用户使用体验和电子设备的产品品质。而且,当Linux内核出现异常时,例如,当Linux内核出现Panic异常后,日志进程会被杀死,导致内核日志数据无法保存,从而会丢失掉最后的关键信息,影响异常分析的有效性和实时性。
发明内容
本发明实施例公开了一种Linux内核异常时的日志处理方法及电子设备,能够提高异常日志分析的有效性。
本发明实施例第一方面公开了一种Linux内核异常时的日志处理方法,包括:
当电子设备Linux内核发生异常时,热重启所述电子设备的系统;
获取预先存储的内核寄存器地址;
从所述电子设备中读取目标内核寄存器的内核日志数据,所述目标内核寄存器与所述内核寄存器地址相对应;
将所述内核日志数据存储至所述电子设备外部闪存的异常分区中。
作为一种可选的实施方式,在本发明实施例第一方面中,所述当电子设备Linux内核发生异常时,热重启所述电子设备的系统之后,以及所述获取预先存储的内核寄存器地址之前,所述方法还包括:
获取所述电子设备上存储所述内核寄存器地址的分区;
加载所述电子设备上存储所述内核寄存器地址的分区的数据到系统微内核;
从所述系统微内核中读取所述电子设备上存储所述内核寄存器地址的分区的数据。
作为一种可选的实施方式,在本发明实施例第一方面中,所述获取预先存储的内核寄存器地址,包括:
从所述存储所述内核寄存器地址的分区的数据中获取所述内核寄存器的基地址和地址偏移量;
根据所述基地址和所述地址偏移量,计算得到所述内核寄存器地址。
作为一种可选的实施方式,在本发明实施例第一方面中,所述从所述电子设备中读取目标内核寄存器的内核日志数据,包括:
判断所述电子设备的所述目标内核寄存器是否处于可读状态;
如果是,以所述目标内核寄存器地址为索引,在存放所有内核日志数据的数据表中进行查找,获取所述目标内核寄存器地址对应的所述内核日志数据。
作为一种可选的实施方式,在本发明实施例第一方面中,所述将所述内核日志数据存储至电子设备外部闪存的异常分区之后,所述方法还包括:
当检测到所述电子设备的系统启动时,检测所述电子设备外部闪存的异常分区,从所述异常分区中读取所述异常分区日志上传到服务器。
本发明实施例第二方面公开了一种电子设备,包括:
重启单元,用于当电子设备Linux内核发生异常时,热重启所述电子设备的系统;
第一获取单元,用于获取预先存储的内核寄存器地址;
第一读取单元,用于从所述电子设备中读取目标内核寄存器的内核日志数据,所述目标内核寄存器与所述内核寄存器地址相对应;
存储单元,用于将所述内核日志数据存储至所述电子设备外部闪存的异常分区中。
作为一种可选的实施方式,在本发明实施例第二方面中,所述电子设备还包括:
第二获取单元,用于在所述重启单元当电子设备Linux内核发生异常时,热重启所述电子设备的系统之后,以及所述第一获取单元获取预先存储的内核寄存器地址之前,获取所述电子设备上存储所述内核寄存器地址的分区;
加载单元,用于加载所述电子设备上存储所述内核寄存器地址的分区的数据到系统微内核;
第二读取单元,用于从所述系统微内核中读取所述电子设备上存储所述内核寄存器地址的分区的数据。
作为一种可选的实施方式,在本发明实施例第二方面中,所述第一获取单元包括:
获取子单元,用于从所述存储所述内核寄存器地址的分区的数据中获取所述内核寄存器的基地址和地址偏移量;
计算子单元,用于根据所述基地址和所述地址偏移量,计算得到所述内核寄存器地址。
作为一种可选的实施方式,在本发明实施例第二方面中,所述第一读取单元包括:
判断子单元,用于判断所述电子设备的所述目标内核寄存器是否处于可读状态;
查找获取子单元,用于在所述判断子单元判断出所述目标内核寄存器处于可读状态时,以所述目标内核寄存器地址为索引,在存放所有内核日志数据的数据表中进行查找,获取所述目标内核寄存器地址对应的所述内核日志数据。
作为一种可选的实施方式,在本发明实施例第二方面中,所述电子设备还包括:
检测上传单元,用于在所述存储单元将所述内核日志数据存储至电子设备外部闪存的异常分区之后,以及当检测到所述电子设备的系统启动时,检测所述电子设备外部闪存的异常分区,从所述异常分区中读取所述异常分区日志上传到服务器。
与现有技术相比,本发明实施例具有以下有益效果:
本发明实施例中,当电子设备Linux内核发生异常时,热重启该电子设备的系统;获取预先存储的内核寄存器地址;从电子设备中读取目标内核寄存器的内核日志数据,其中,该目标内核寄存器与内核寄存器地址相对应;并将内核日志数据存储至电子设备外部闪存的异常分区中。可见,通过实施本发明实施例,在电子设备Linux内核发生异常时,通过热重启电子设备系统,然后从预先存储的内核寄存器地址对应的目标内核寄存器中读取内核日志数据,将内核日志数据存储至电子设备外部闪存的异常分区中,实现了在电子设备Linux内核异常的第一时刻,及时存储下来内核日志数据,能够日后为内核异常分析提供依据,提高异常日志分析的有效性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例公开的一种Linux内核异常时的日志处理方法的流程示意图;
图2是本发明实施例公开的另一种Linux内核异常时的日志处理方法的流程示意图;
图3是本发明实施例公开的另一种Linux内核异常时的日志处理方法的流程示意图;
图4是本发明实施例公开的一种电子设备的结构示意图;
图5是本发明实施例公开的另一种电子设备的结构示意图;
图6是本发明实施例公开的另一种电子设备的结构示意图;
图7是本发明实施例公开的另一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述特定顺序。本发明实施例的术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明实施例公开了一种Linux内核异常时的日志处理方法及电子设备,能够在内核异常时及时保存内核日志数据,为内核异常分析提供依据,提高异常日志分析的有效性。以下结合具体实施例,从电子设备角度出发进行详细描述。
实施例一
请参阅图1,图1是本发明实施例公开的一种Linux内核异常时的日志处理方法的流程示意图。如图1所示,该Linux内核异常时的日志处理方法可以包括以下步骤。
101、当电子设备Linux内核发生异常时,电子设备进行系统热重启。
本发明实施例中,电子设备可以是使用Linux嵌入式操作系统的智能手机、个人电脑(Personal Computer,PC)、移动平板、个人数字助理(Personal Digital Assistant,PDA)、移动互联网设备(Mobile Internet Device,MID),可穿戴设备等各种设备;其中,电子设备的处理器可以是中央处理器(Central Processing Unit,CPU)、图形处理器(Graphics Processing Unit,GPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件(Programmable Logic Device,PLD)、分立门或者晶体管逻辑器件、分立硬件组件及其他。
其中,在本发明实施例中,在电子设备内核异常时,用户可以通过热重启电子设备的系统,避免对电子设备的软硬件造成损坏,从而避免数据的丢失。
102、电子设备获取预先存储的内核寄存器地址。
在本发明实施例中,电子设备开机后,启动系统内核,当电子设备出现异常时,如卡顿等,电子设备将内核寄存器地址存储下来,然后,当电子设备Linux内核发生异常时,如Panic、Crash和无法正常工作等,热重启该电子设备的系统(即RAM不掉电),通过微内核(Little Kernel,LK)、系统引导Uboot启动电子设备的系统内核,获取预先存储的内核寄存器地址。
103、电子设备读取目标内核寄存器的内核日志数据,该目标内核寄存器与该内核寄存器地址相对应。
104、电子设备将该内核日志数据存储至外部闪存的异常分区中。
在本发明实施例中,电子设备将内核日志数据存储至外部闪存的异常分区中,使得内核日志数据不易丢失,电子设备的系统即使在断电情况下也可以保证内核日志数据的完整性。电子设备将该内核日志数据存储至外部闪存的异常分区之后,电子设备的系统启动时,电子设备检测到外部闪存的异常分区日志,从该异常分区中读取异常分区日志上传到服务器以供研发人员分析。因此,电子设备在不借助RAMDump功能、SysDump功能的情况下,当电子设备的系统内核发生异常时,也可以在第一时刻将内核日志数据完整地存储下来。
可见,实施图1所描述的方法,电子设备可以在Linux内核发生异常时,热重启该电子设备的系统,然后从预先存储的内核寄存器地址对应的目标内核寄存器中读取内核日志数据,并将内核日志数据存储至电子设备外部闪存的异常分区中,实现了在电子设备Linux内核异常的第一时刻,及时存储下来内核日志数据,能够日后为内核异常分析提供依据,提高异常日志分析的有效性。
实施例二
请参阅图2,图2是本发明实施例公开的一种Linux内核异常时的日志处理方法的流程示意图。如图2所示,该Linux内核异常时的日志处理方法可以包括以下步骤。
201、当电子设备Linux内核发生异常时,电子设备进行系统热重启。
202、电子设备获取存储内核寄存器地址的分区。
作为一种可选的实施方式,电子设备的系统将内存划分成若干个固定大小的分区,每个分区最多只能存储一个作业。其中,作业是用户在一次算题过程中或一个事务处理中要求计算机系统所做的工作的集合,它由程序、数据、作业说明3部分组成。当作业申请内存时,系统按一定的算法为该作业选择一个适当的分区,并装入内存运行。电子设备的系统将系统卡顿时保存的内核寄存器地址存储到一个固定分区中,并装入内存中运行。通过该实施方式,当电子设备的系统内核发生异常时,电子设备的系统内核优先执行存储内核寄存器地址的作业,从分区中读取内核寄存器地址,从而在第一时刻将内核日志数据存储下来。
作为一种可选的实施方式,电子设备的系统在作业装入内存时建立一个分区,使得分区的大小正好与作业要求的存储空间相等。电子设备的系统在系统卡顿时保存的内核寄存器地址申请装入内存时,为该内存寄存器地址建立一个分区,使得该内存寄存器地址存储在内存分区中,且该内存分区的大小与该内存寄存器地址的存储空间相等。通过该实施方式,当电子设备的系统内核发生异常时,电子设备的系统内核从内存分区中读取内核寄存器地址,且读取时间短,能快速获取内核日志数据并存储下来,从而可以保存电子设备的系统内核发生异常的第一时刻的内核日志数据。
203、电子设备加载存储内核寄存器地址的分区的数据到系统微内核。
在本发明实施例中,电子设备系统将存储在内存分区中的内核寄存器地址加载到系统微内核,该系统微内核为该内核寄存器地址分配地址空间、调度该内核寄存器地址的读写操作和实现与电子设备外部闪存的通信等等。
204、电子设备从该系统微内核中读取存储内核寄存器地址的分区的数据。
205、电子设备获取预先存储的内核寄存器地址。
206、电子设备读取目标内核寄存器的内核日志数据,该目标内核寄存器与内核寄存器地址相对应。
207、电子设备将该内核日志数据存储至外部闪存的异常分区中。
208、电子设备的系统启动时,电子设备检测到外部闪存的异常分区日志,从该异常分区中读取异常分区日志上传到服务器。
在本发明实施例中,电子设备的系统启动时,电子设备检测到外部闪存中根据内核日志数据得到的异常分区日志,从该异常分区中读取异常分区日志上传到服务器以供研发人员分析解决问题。而且,异常分区日志存储在电子设备外部闪存的异常分区中,使得异常分析日志不易丢失,电子设备的系统即使在断电情况下也可以保证异常分区日志的完整性和有效性。
可见,实施图2所描述的方法,电子设备可以在Linux内核发生异常时,热重启该电子设备的系统,在系统微内核中读取电子设备上存储内核寄存器地址的分区的数据,然后从预先存储的内核寄存器地址对应的目标内核寄存器中读取内核日志数据,并将内核日志数据存储至电子设备外部闪存的异常分区中,实现了在电子设备Linux内核异常的第一时刻,及时存储下来内核日志数据,能够日后为内核异常分析提供依据,提高异常日志分析的有效性。
实施例三
请参阅图3,图3是本发明实施例公开的一种Linux内核异常时的日志处理方法的流程示意图。如图3所示,该Linux内核异常时的日志处理方法可以包括以下步骤。
301、当电子设备Linux内核发生异常时,电子设备进行系统热重启。
302、电子设备获取存储内核寄存器地址的分区。
303、电子设备加载存储内核寄存器地址的分区的数据到系统微内核。
304、电子设备从该系统微内核中读取存储内核寄存器地址的分区的数据。
305、电子设备从存储所述内核寄存器地址的分区的数据中获取内核寄存器的基地址和地址偏移量。
本发明实施例中,电子设备的CPU中的相关部件提供两个16位的地址,一个是基地址,一个是地址偏移量,CPU在访问内存时,用一个基地址和一个地址偏移量,可以得到内存单元的物理地址,其中物理地址是20位的地址。所以,电子设备的系统内核寄存器的地址可以通过内核寄存器的基地址和地址偏移量得到。
306、电子设备根据基地址和地址偏移量,计算得到内核寄存器地址。
在本发明实施例中,电子设备的地址加法器将基地址*16+地址偏移量=内核寄存器地址。
307、电子设备判断目标内核寄存器是否处于可读状态,如果是,执行步骤308;如果否,结束本流程。其中,该目标内核寄存器与内核寄存器地址相对应。
308、电子设备以目标内核寄存器地址为索引,在存放所有内核日志数据的数据表中进行查找,获取该目标内核寄存器地址对应的内核日志数据。
309、电子设备将该内核日志数据存储至外部闪存的异常分区中。
310、电子设备的系统启动时,电子设备检测到外部闪存的异常分区日志,从该异常分区中读取异常分区日志上传到服务器。
可见,实施图3所描述的方法,电子设备可以在Linux内核发生异常时,热重启该电子设备的系统,在系统微内核中读取电子设备上存储内核寄存器地址的分区的数据,然后以预先存储的内核寄存器地址为索引,在存放所有内核日志数据的数据表中进行查找,获取该目标内核寄存器地址对应的内核日志数据,并将内核日志数据存储至电子设备外部闪存的异常分区中,实现了在电子设备Linux内核异常的第一时刻,及时存储下来内核日志数据,能够日后为内核异常分析提供依据,提高异常日志分析的有效性。
实施例四
图4是本发明实施例公开的一种电子设备的结构示意图。如图4所示,该电子设备可以包括:
重启单元401,用于当电子设备Linux内核发生异常时,热重启该电子设备的系统;
第一获取单元402,用于获取预先存储的内核寄存器地址。
在本发明实施例中,电子设备开机后,启动系统内核,当电子设备出现异常时,如卡顿等,电子设备将内核寄存器地址存储下来,然后,当电子设备Linux内核发生异常时,如Panic、Crash和无法正常工作等,热重启该电子设备的系统(即RAM不掉电),通过微内核(Little Kernel,LK)、系统引导Uboot启动操作系统内核,获取预先存储的内核寄存器地址。
第一读取单元403,用于从该电子设备中读取目标内核寄存器的内核日志数据,该目标内核寄存器与内核寄存器地址相对应;
存储单元404,用于将该内核日志数据存储至该电子设备外部闪存的异常分区中。
在本发明实施例中,电子设备将内核日志数据存储至外部闪存的异常分区中,使得内核日志数据不易丢失,电子设备的系统即使在断电情况下也可以保证内核日志数据的完整性。电子设备将该内核日志数据存储至外部闪存的异常分区之后,电子设备的系统启动时,电子设备检测到外部闪存的异常分区日志,从该异常分区中读取异常分区日志上传到服务器以供研发人员分析。因此,电子设备在不借助RAMDump、SysDump的情况下,当电子设备的系统内核发生异常时,也可以在第一时刻将内核日志数据完整地存储下来。
可见,实施图4所描述的电子设备,可以在电子设备Linux内核异常时,通过热重启电子设备系统,根据预先存储的内核寄存器地址读取内核日志数据存储至电子设备外部闪存的异常分区中,从而能够日后为内核异常分析提供依据,提高异常日志分析的有效性。
实施例五
图5是本发明实施例公开的另一种电子设备的结构示意图。如图5所示,其中,图5所示的电子设备是由图4所示的电子设备进行优化得到的。与图4所示的电子设备相比较,图5所示的电子设备还可以包括:
第二获取单元405,用于在上述重启单元401当电子设备Linux内核发生异常时,热重启该电子设备的系统之后,以及上述第一获取单元402获取预先存储的内核寄存器地址之前,获取该电子设备上存储所述内核寄存器地址的分区。
作为一种可选的实施方式,电子设备的系统将内存划分成若干个固定大小的分区,每个分区最多只能存储一个作业。其中,作业是用户在一次算题过程中或一个事务处理中要求计算机系统所做的工作的集合,它由程序、数据、作业说明3部分组成。当作业申请内存时,系统按一定的算法为该作业选择一个适当的分区,并装入内存运行。电子设备的系统将系统卡顿时保存的内核寄存器地址存储到一个固定分区中,并装入内存中运行。通过该实施方式,当电子设备的系统内核发生异常时,电子设备的系统内核优先执行存储内核寄存器地址的作业,从分区中读取内核寄存器地址,从而在第一时刻将内核日志数据存储下来。
作为一种可选的实施方式,电子设备的系统在作业装入内存时建立一个分区,使得分区的大小正好与作业要求的存储空间相等。电子设备的系统在系统卡顿时保存的内核寄存器地址申请装入内存时,为该内存寄存器地址建立一个分区,使得该内存寄存器地址存储在内存分区中,且该内存分区的大小与该内存寄存器地址的存储空间相等。通过该实施方式,当电子设备的系统内核发生异常时,电子设备的系统内核从内存分区中读取内核寄存器地址,且读取时间短,能快速获取内核日志数据并存储下来,从而可以保存电子设备的系统内核发生异常的第一时刻的内核日志数据。
加载单元406,用于加载该电子设备上存储该内核寄存器地址的分区的数据到系统微内核。
在本发明实施例中,电子设备系统将存储在内存分区中的内核寄存器地址加载到系统微内核,该系统微内核为该内核寄存器地址分配地址空间、调度该内核寄存器地址的读写操作和实现与电子设备外部闪存的通信等等。
第二读取单元407,用于从该系统微内核中读取该电子设备上存储该内核寄存器地址的分区的数据;
检测上传单元408,用于在上述存储单元404将该内核日志数据存储至电子设备外部闪存的异常分区之后,以及当检测到该电子设备的系统启动时,检测该电子设备外部闪存的异常分区,从该异常分区中读取异常分区日志上传到服务器。
在本发明实施例中,电子设备的系统启动时,电子设备检测到外部闪存中根据内核日志数据得到的异常分区日志,从该异常分区中读取异常分区日志上传到服务器以供研发人员分析解决问题。而且,异常分区日志存储在电子设备外部闪存的异常分区中,使得异常分析日志不易丢失,电子设备的系统即使在断电情况下也可以保证异常分区日志的完整性和有效性。
可见,实施图5所描述的电子设备,可以在电子设备Linux内核异常时,通过热重启电子设备系统,从系统微内核中读取该电子设备上存储内核寄存器地址的分区的数据,然后根据预先存储的内核寄存器地址读取内核日志数据存储至电子设备外部闪存的异常分区中,并将异常分区日志上传到服务器,为内核异常分析提供依据,提高异常日志分析的有效性。
实施例六
图6是本发明实施例公开的另一种电子设备的结构示意图。如图6所示,其中,图6所示的电子设备是由图5所示的电子设备进行优化得到的。与图5所示的电子设备相比较,图6所示的电子设备还可以包括:
获取子单元409,用于从存储所述内核寄存器地址的分区的数据中获取内核寄存器的基地址和地址偏移量。
本发明实施例中,电子设备的CPU中的相关部件提供两个16位的地址,一个是基地址,一个是地址偏移量,CPU在访问内存时,用一个基地址和一个地址偏移量,可以得到内存单元的物理地址,其中物理地址是20位的地址。所以,电子设备的系统内核寄存器的地址可以通过内核寄存器的基地址和地址偏移量得到。
计算子单元410,用于根据该基地址和该地址偏移量,计算得到内核寄存器地址。
在本发明实施例中,电子设备的地址加法器将基地址*16+地址偏移量=内核寄存器地址。
判断子单元411,用于判断该电子设备的目标内核寄存器是否处于可读状态,其中,该目标内核寄存器与内核寄存器地址相对应;
查找获取子单元412,用于在上述判断子单元411判断出该目标内核寄存器处于可读状态时,以该目标内核寄存器地址为索引,在存放所有内核日志数据的数据表中进行查找,获取该目标内核寄存器地址对应的内核日志数据。
可见,实施图6所描述的电子设备,可以在电子设备Linux内核异常时,通过热重启电子设备系统,从系统微内核中读取该电子设备上存储内核寄存器地址的分区的数据,然后以预先存储的内核寄存器地址为索引,在存放所有内核日志数据的数据表中进行查找,获取该目标内核寄存器地址对应的内核日志数据,并将异常分区日志上传到服务器,为内核异常分析提供依据,提高异常日志分析的有效性。
实施例七
请参阅图7,图7是本发明实施例公开的另一种电子设备的结构示意图。如图7所示,该电子设备可以包括:
存储有可执行程序代码的存储器701;
与存储器701耦合的处理器702;
其中,处理器702调用存储器701中存储的可执行程序代码,执行图1~图3任意一种电子设备的控制方法。
本发明实施例公开一种计算机可读存储介质,其存储计算机程序,其中,该计算机程序使得计算机执行图1~图3任意一种Linux内核异常时的日志处理方法。
本发明实施例还公开一种计算机程序产品,其中,当计算机程序产品在计算机上运行时,使得计算机执行如以上各方法实施例中的方法的部分或全部步骤。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质包括只读存储器(Read-Only Memory,ROM)、随机存储器(Random Access Memory,RAM)、可编程只读存储器(Programmable Read-only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、一次可编程只读存储器(One-time Programmable Read-Only Memory,OTPROM)、电子抹除式可复写只读存储器(Electrically-Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(CompactDisc Read-Only Memory,CD-ROM)或其他光盘存储器、磁盘存储器、磁带存储器、或者能够用于携带或存储数据的计算机可读的任何其他介质。
以上对本发明实施例公开的一种Linux内核异常时的日志处理方法及电子设备进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种Linux内核异常时的日志处理方法,其特征在于,所述方法包括:
当电子设备Linux内核发生异常时,热重启所述电子设备的系统;
获取预先存储的内核寄存器地址;
从所述电子设备中读取目标内核寄存器的内核日志数据,所述目标内核寄存器与所述内核寄存器地址相对应;
将所述内核日志数据存储至所述电子设备外部闪存的异常分区中。
2.根据权利要求1所述的方法,其特征在于,所述当电子设备Linux内核发生异常时,热重启所述电子设备的系统之后,以及所述获取预先存储的内核寄存器地址之前,所述方法还包括:
获取所述电子设备上存储所述内核寄存器地址的分区;
加载所述电子设备上存储所述内核寄存器地址的分区的数据到系统微内核;
从所述系统微内核中读取所述电子设备上存储所述内核寄存器地址的分区的数据。
3.根据权利要求2所述的方法,其特征在于,所述获取预先存储的内核寄存器地址,包括:
从所述存储所述内核寄存器地址的分区的数据中获取所述内核寄存器的基地址和地址偏移量;
根据所述基地址和所述地址偏移量,计算得到所述内核寄存器地址。
4.根据权利要求1所述的方法,其特征在于,所述从所述电子设备中读取目标内核寄存器的内核日志数据,包括:
判断所述电子设备的所述目标内核寄存器是否处于可读状态;
如果是,以所述目标内核寄存器地址为索引,在存放所有内核日志数据的数据表中进行查找,获取所述目标内核寄存器地址对应的所述内核日志数据。
5.根据权利要求1所述的方法,其特征在于,所述将所述内核日志数据存储至电子设备外部闪存的异常分区之后,所述方法还包括:
当检测到所述电子设备的系统启动时,检测所述电子设备外部闪存的异常分区,从所述异常分区中读取所述异常分区日志上传到服务器。
6.一种电子设备,其特征在于,所述电子设备包括:
重启单元,用于当电子设备Linux内核发生异常时,热重启所述电子设备的系统;
第一获取单元,用于获取预先存储的内核寄存器地址;
第一读取单元,用于从所述电子设备中读取目标内核寄存器的内核日志数据,所述目标内核寄存器与所述内核寄存器地址相对应;
存储单元,用于将所述内核日志数据存储至所述电子设备外部闪存的异常分区中。
7.根据权利要求6所述的电子设备,其特征在于,所述电子设备还包括:
第二获取单元,用于在所述重启单元当电子设备Linux内核发生异常时,热重启所述电子设备的系统之后,以及所述第一获取单元获取预先存储的内核寄存器地址之前,获取所述电子设备上存储所述内核寄存器地址的分区;
加载单元,用于加载所述电子设备上存储所述内核寄存器地址的分区的数据到系统微内核;
第二读取单元,用于从所述系统微内核中读取所述电子设备上存储所述内核寄存器地址的分区的数据。
8.根据权利要求7所述的电子设备,其特征在于,所述第一获取单元包括:
获取子单元,用于从所述存储所述内核寄存器地址的分区的数据中获取所述内核寄存器的基地址和地址偏移量;
计算子单元,用于根据所述基地址和所述地址偏移量,计算得到所述内核寄存器地址。
9.根据权利要求6所述的电子设备,其特征在于,所述第一读取单元包括:
判断子单元,用于判断所述电子设备的所述目标内核寄存器是否处于可读状态;
查找获取子单元,用于在所述判断子单元判断出所述目标内核寄存器处于可读状态时,以所述目标内核寄存器地址为索引,在存放所有内核日志数据的数据表中进行查找,获取所述目标内核寄存器地址对应的所述内核日志数据。
10.根据权利要求6所述的电子设备,其特征在于,所述电子设备还包括:
检测上传单元,用于在所述存储单元将所述内核日志数据存储至电子设备外部闪存的异常分区之后,以及当检测到所述电子设备的系统启动时,检测所述电子设备外部闪存的异常分区,从所述异常分区中读取所述异常分区日志上传到服务器。
CN201811028362.6A 2018-09-04 2018-09-04 一种Linux内核异常时的日志处理方法及电子设备 Active CN109189612B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811028362.6A CN109189612B (zh) 2018-09-04 2018-09-04 一种Linux内核异常时的日志处理方法及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811028362.6A CN109189612B (zh) 2018-09-04 2018-09-04 一种Linux内核异常时的日志处理方法及电子设备

Publications (2)

Publication Number Publication Date
CN109189612A true CN109189612A (zh) 2019-01-11
CN109189612B CN109189612B (zh) 2020-10-16

Family

ID=64914619

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811028362.6A Active CN109189612B (zh) 2018-09-04 2018-09-04 一种Linux内核异常时的日志处理方法及电子设备

Country Status (1)

Country Link
CN (1) CN109189612B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109951591A (zh) * 2019-03-12 2019-06-28 上海龙旗科技股份有限公司 手机器件异常监控方法及设备
CN110673974A (zh) * 2019-08-20 2020-01-10 中科创达软件股份有限公司 系统调试方法及装置
CN110716845A (zh) * 2019-09-29 2020-01-21 上海龙旗科技股份有限公司 一种Android系统的日志信息读取的方法
CN111596863A (zh) * 2020-05-20 2020-08-28 歌尔科技有限公司 一种数据读取方法、装置、设备及可读存储介质
CN111625384A (zh) * 2020-05-25 2020-09-04 广东小天才科技有限公司 移动终端异常问题分析方法、系统、终端设备及存储介质
CN112328561A (zh) * 2020-11-26 2021-02-05 广东小天才科技有限公司 一种日志传递方法、系统、电子设备和存储介质
CN112540874A (zh) * 2020-12-08 2021-03-23 广东小天才科技有限公司 智能设备死机日志采集方法、系统、电子设备及存储介质
CN114356067A (zh) * 2021-12-30 2022-04-15 北京字节跳动网络技术有限公司 数据存储方法、装置和电子设备

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104899111A (zh) * 2015-06-09 2015-09-09 烽火通信科技股份有限公司 一种处理家庭网关系统内核崩溃的方法及系统
CN107276789A (zh) * 2017-05-19 2017-10-20 努比亚技术有限公司 日志上传方法、装置及计算机可读存储介质
CN107515808A (zh) * 2017-08-08 2017-12-26 百富计算机技术(深圳)有限公司 日志记录方法、装置、计算机设备和计算机可读存储介质
CN108073507A (zh) * 2016-11-17 2018-05-25 联芯科技有限公司 一种内核崩溃现场数据的处理方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104899111A (zh) * 2015-06-09 2015-09-09 烽火通信科技股份有限公司 一种处理家庭网关系统内核崩溃的方法及系统
CN108073507A (zh) * 2016-11-17 2018-05-25 联芯科技有限公司 一种内核崩溃现场数据的处理方法及装置
CN107276789A (zh) * 2017-05-19 2017-10-20 努比亚技术有限公司 日志上传方法、装置及计算机可读存储介质
CN107515808A (zh) * 2017-08-08 2017-12-26 百富计算机技术(深圳)有限公司 日志记录方法、装置、计算机设备和计算机可读存储介质

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109951591A (zh) * 2019-03-12 2019-06-28 上海龙旗科技股份有限公司 手机器件异常监控方法及设备
CN109951591B (zh) * 2019-03-12 2021-10-08 上海龙旗科技股份有限公司 手机器件异常监控方法及设备
CN110673974A (zh) * 2019-08-20 2020-01-10 中科创达软件股份有限公司 系统调试方法及装置
CN110716845A (zh) * 2019-09-29 2020-01-21 上海龙旗科技股份有限公司 一种Android系统的日志信息读取的方法
CN110716845B (zh) * 2019-09-29 2024-03-12 上海龙旗科技股份有限公司 一种Android系统的日志信息读取的方法
CN111596863A (zh) * 2020-05-20 2020-08-28 歌尔科技有限公司 一种数据读取方法、装置、设备及可读存储介质
CN111625384A (zh) * 2020-05-25 2020-09-04 广东小天才科技有限公司 移动终端异常问题分析方法、系统、终端设备及存储介质
CN111625384B (zh) * 2020-05-25 2024-05-14 广东小天才科技有限公司 移动终端异常问题分析方法、系统、终端设备及存储介质
CN112328561A (zh) * 2020-11-26 2021-02-05 广东小天才科技有限公司 一种日志传递方法、系统、电子设备和存储介质
CN112540874A (zh) * 2020-12-08 2021-03-23 广东小天才科技有限公司 智能设备死机日志采集方法、系统、电子设备及存储介质
CN114356067A (zh) * 2021-12-30 2022-04-15 北京字节跳动网络技术有限公司 数据存储方法、装置和电子设备

Also Published As

Publication number Publication date
CN109189612B (zh) 2020-10-16

Similar Documents

Publication Publication Date Title
CN109189612A (zh) 一种Linux内核异常时的日志处理方法及电子设备
US11777705B2 (en) Techniques for preventing memory timing attacks
CN101436237B (zh) 用于将软件组件列入白名单的方法和系统
CN110730136B (zh) 一种实现流量控制的方法、装置、服务器及存储介质
US9215246B2 (en) Website scanning device and method
CN104346148B (zh) 获取程序性能消耗信息的方法、装置及系统
CN101515316A (zh) 一种可信计算终端及可信计算方法
TW202046099A (zh) 藉由監測對基本輸入/輸出系統(bios)或統一可延伸韌體介面(uefi)屬性進行之組態改變之鏈來偵測安全威脅
CN109325349A (zh) 一种安全管理方法、终端设备及计算机可读存储介质
KR20160110504A (ko) 컴퓨팅 디바이스의 초기화 트레이스
CN114095567B (zh) 数据访问请求的处理方法、装置、计算机设备及介质
CN111641588A (zh) 网页模拟输入检测方法、装置、计算机设备及存储介质
Srivastava et al. Logical acquisition and analysis of data from android mobile devices
CN109144834B (zh) 用户行为数据的采集方法及装置、安卓系统及终端设备
CN109245928A (zh) 配置信息的设置方法和装置、终端管理系统
CN104077220A (zh) Mips架构操作系统内核的调试方法和装置
CN104199693B (zh) 一种获取开机时间的方法、装置及终端
CN103955649B (zh) 一种安全启动终端设备的方法
CN104750536A (zh) 一种实现虚拟机自省的方法和装置
CN109815083B (zh) 一种应用崩溃的监控方法、装置、电子设备及介质
DE112017004917T5 (de) Speichermonitor
CN107992397A (zh) Bios程序启动监控方法以及电子设备
CN113900893B (zh) 一种日志获取方法及其相关设备
US11360871B1 (en) Automatic optimization and hardening of application images
CN106547583B (zh) 一种操作系统安装方法以及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant