CN116719671A - 一种内核转存服务的调试方法及其相关设备 - Google Patents
一种内核转存服务的调试方法及其相关设备 Download PDFInfo
- Publication number
- CN116719671A CN116719671A CN202310635475.7A CN202310635475A CN116719671A CN 116719671 A CN116719671 A CN 116719671A CN 202310635475 A CN202310635475 A CN 202310635475A CN 116719671 A CN116719671 A CN 116719671A
- Authority
- CN
- China
- Prior art keywords
- kernel
- data
- service
- file system
- file
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 83
- 238000004519 manufacturing process Methods 0.000 claims abstract description 106
- 230000002159 abnormal effect Effects 0.000 claims description 39
- 230000001960 triggered effect Effects 0.000 claims description 15
- 238000013500 data storage Methods 0.000 claims description 10
- 238000012423 maintenance Methods 0.000 abstract description 7
- 238000012545 processing Methods 0.000 description 17
- 238000012546 transfer Methods 0.000 description 17
- 230000005856 abnormality Effects 0.000 description 16
- 238000004590 computer program Methods 0.000 description 14
- 238000004458 analytical method Methods 0.000 description 12
- 230000006870 function Effects 0.000 description 11
- 230000006837 decompression Effects 0.000 description 10
- 238000010586 diagram Methods 0.000 description 10
- 238000013144 data compression Methods 0.000 description 9
- 230000007246 mechanism Effects 0.000 description 8
- 230000008569 process Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000002085 persistent effect Effects 0.000 description 2
- 238000013473 artificial intelligence Methods 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000013481 data capture Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operation
- G06F11/1402—Saving, restoring, recovering or retrying
- G06F11/1415—Saving, restoring, recovering or retrying at system level
- G06F11/1417—Boot up procedures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请涉及一种内核转存服务的调试方法及其相关设备,涉及计算机技术领域。该方法的一具体实施方式包括:在生产内核崩溃并触发内核转存服务时,通过在终端设备驱动的数据接收端设置的数据获取节点获取用户态数据,并将用户态数据存储至文件***的存储端对应的数据文件空间中;其中,文件***的存储端对应的数据文件空间占用捕获内核的预留内存空间;在生产内核重新启动后,从文件***的存储端对应的数据文件空间中获取用户态数据,根据用户态数据进行内核转存服务的调试。该实施方式实现了高效、低成本的对内核转存服务进行调试维护,有效保障了内核转存服务的正常运行,进而便于用户快速分析内核崩溃原因。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及内核转存服务的调试方法及其相关设备。
背景技术
本部分旨在为权利要求书中陈述的本发明实施例提供背景或上下文。不应以此处的描述包括在本部分中就承认是现有技术。
内核转存服务(Kdump)是用于在生产内核崩溃时转存内存运行参数的一个工具和服务。当生产内核崩溃时,通过启动捕获内核捕获生产内核崩溃时产生的数据,并生成内核转储文件(vmcore),待生产内核重新启动后,根据生成的vmcore来分析内核崩溃原因。但实际运行场景下,常出现内核转存服务异常,无法生成vmcore的情形,这导致用户无法分析内核崩溃原因。如何实现对内核转存服务进行调试,以高效、低成本的分析内核转存服务异常原因,进而维护和保障内核转存服务能够正常运行,是当前亟需解决的问题。
发明内容
本发明实施例提供的内核转存服务的调试方法及其相关设备,至少解决相关技术中由于内核转存服务异常,且调试成本较高、调试效率低,无法及时有效地对内核转存服务进行调试维护,进而难以保障内核转存服务正常运行,导致用户无法快速分析内核崩溃原因,用户体验差的问题。
为了解决上述问题,本发明实施例的一个方面,提供了一种内核转存服务的调试方法,包括:
在生产内核崩溃并触发内核转存服务时,通过在终端设备驱动的数据接收端设置的数据获取节点获取用户态数据,并将用户态数据存储至文件***的存储端对应的数据文件空间中;其中,文件***的存储端对应的数据文件空间占用捕获内核的预留内存空间;
在生产内核重新启动后,从文件***的存储端对应的数据文件空间中获取用户态数据,根据用户态数据进行内核转存服务的调试。
在其中的一些实施例中,方法还包括:
通过文件***的数据获取端获取内核转存服务触发时产生的内核态数据,并将内核态数据存储至文件***的存储端;其中,内核态数据和用户态数据分别存储在文件***的存储端的不同位置。
在其中的一些实施例中,在生产内核重新启动后,方法还包括:
从文件***的存储端获取内核态数据,根据内核态数据进行内核转存服务的调试。
在其中的一些实施例中,在生产内核崩溃并触发内核转存服务的步骤之前,方法还包括:
在操作***的捕获内核的内存空间中配置文件***的存储端对应的数据文件空间,在终端设备驱动的数据接收端设置数据获取节点,并配置数据获取节点对应的数据获取参数;其中,数据获取参数指示了数据获取条件和数据存储地址,数据存储地址为文件***的存储端对应的数据文件空间,数据获取条件为生产内核崩溃并触发内核转存服务时。
在其中的一些实施例中,在操作***的捕获内核的内存空间中配置文件***的存储端对应的数据文件空间的步骤还包括:
根据操作***的生产内核的内存空间容量确定捕获内核的内存空间容量,并根据捕获内核的内存空间容量,在生产内核的内存空间中配置捕获内核的内存空间;
根据捕获内核的内存空间容量确定文件***的存储端对应的数据文件空间容量,并在捕获内核的内存空间中配置文件***的存储端对应的数据文件空间。
在其中的一些实施例中,方法还包括:
通过文件***的数据获取端获取内核跟踪信息和用户日志信息,并将内核跟踪信息和用户日志信息分别存储至文件***的存储端的不同位置。
在其中的一些实施例中,方法还包括:
根据调试结果确定内核转存服务的异常原因,并根据异常原因对内核转存服务进行维护。
为了解决上述问题,本发明实施例的另一个方面,提供了一种内核转存服务的调试***,包括:
存储单元,用于在生产内核崩溃并触发内核转存服务时,通过在终端设备驱动的数据接收端设置的数据获取节点获取用户态数据,并将用户态数据存储至文件***的存储端对应的数据文件空间中;其中,文件***的存储端对应的数据文件空间占用捕获内核的预留内存空间;
调试单元,用于在生产内核重新启动后,从文件***的存储端对应的数据文件空间中获取用户态数据,根据用户态数据进行内核转存服务的调试。
为了解决上述问题,本发明实施例的又一个方面,提供了一种电子设备,包括:处理器,以及存储程序的存储器,其中,程序包括指令,指令在由处理器执行时使处理器执行上述任一种内核转存服务的调试方法。
为了解决上述问题,本发明实施例的再一个方面,提供了一种存储有计算机指令的非瞬时机器可读介质,其中,计算机指令用于使计算机执行上述任一种内核转存服务的调试方法。
本发明实施例的有益效果:通过在终端设备驱动的数据接收端设置数据获取节点,在操作***的捕获内核中配置文件***的存储端的数据文件空间,当生产内核崩溃并触发内核转存服务时,通过文件***的存储端存储从数据获取节点获取的用户态数据,并在生产内核重新启动后,根据用户态数据进行内核转存服务的调试。实现了及时有效地对内核转存服务进行调试维护,提高了调试效率,降低了调试成本,有效保障了内核转存服务的正常运行,进而便于用户快速分析内核崩溃原因,提升了用户体验。
本发明的一个或多个实施例的细节在以下附图和描述中提出,以使本发明的其他特征、目的和优点更加简明易懂。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
图1是本发明实施例的一个实施例的内核转存服务的调试方法的流程示意图。
图2a示出了本发明一个实施例中生产内核运行时用户态数据传输所对应的示意图。
图2b示出了本发明一个实施例中生产内核崩溃时用户态数据传输所对应的示意图。
图3a是本发明实施例的另一个实施例的内核转存服务的调试方法的流程示意图。
图3b是图3a所示方法中在捕获内核中配置多个数据文件空间的示意图。
图3c是图3a所示方法中将内核态数据和用户态数据存储至文件***的存储端的示意图。
图4是本发明实施例的又一个实施例提供的内核转存服务的调试***的框架示意图。
图5是本实施例的电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本实施例的实施例。虽然附图中显示了本实施例的某些实施例,然而应当理解的是,本实施例可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本实施例。应当理解的是,本实施例的附图及实施例仅用于示例性作用,并非用于限制本实施例的保护范围。
生产内核(production kernel/standard kernel):操作***的主内核,也称第一内核,是产品或者线上服务器当前运行的内核,用于与硬件直接交互,执行进程和内存管理,提供不同进程间的通信能力,接收进程发送的***调用等功能。
内核崩溃(kernel crash):当面临操作***在中断处理程序时使用可能导致睡眠的函数(例如信号量等);内核堆栈溢出;指针异常访问;内核陷入死锁状态;或者内核线程中存在死循环的操作等情形均可能导致内核崩溃,无法执行操作***的正常功能。
捕获内核(capture kernel/crash kernel):操作***的第二内核,当第一内核生产内核崩溃时,响应于kexec机制的调用启动,用于捕获生产内核当前内存中的运行状态和数据信息。
Kexec机制:一种快速启动机制,在不需要经过BIOS(Basic Input OutputSystem,基本输入输出***)的情况下,允许通过已经运行的内核的上下文启动另一个Linux内核,由于BIOS需要消耗较多时间,因此通过Kexec机制可以实现快速启动。
内核转存服务(kdump):是在***崩溃、死锁或死机时用来转存内存运行参数的一个工具和服务,是一种基于kexec(一种快速切换机制)的内核崩溃转储机制。当***的第一个内核(通常叫做生产内核)崩溃时,kdump使用kexec快速启动到第二内核(第二内核通常叫做捕获内核),以捕获转储镜像。由于kdump利用kexec启动捕获内核,绕过了BIOS(BasicInput Output System,基本输入输出***),所以第一个内核的内存得以保留,这是内核崩溃转存的本质。
内核态:在Linux***中,内核态和用户态是两种不同的运行模式,其主要区别在于程序所处的权限和访问硬件资源的方式。内核态是指操作***运行在较高的权限级别,能够直接访问硬件设备和***资源,并且执行操作***内核的代码。内核态下的程序主要执行一些底层的操作,例如驱动程序、***服务等。
用户态:是指程序运行在较低的权限级别,不能直接访问***底层的资源,如硬件设备和内核态的代码。程序在用户态下执行时,需要向操作***发出***调用请求,由操作***代表程序去执行相关的操作。用户态下的程序主要执行一些应用程序逻辑,例如文本编辑器、浏览器、音乐播放器等。
内核转存服务(Kdump)是在生产内核崩溃时,通过快速切换机制(kexec机制)启动捕获内核,进而捕获生产内核崩溃时产生的数据并生成内核转储文件,以据此分析内核崩溃原因。但是在实际运行场景中,由于捕获内核的内存空间不足、kexec版本过低、CPU架构、OOT驱动等问题,常导致内核转存服务异常,使得无法生成内核转储文件,进而用户无法分析内核崩溃原因。相关技术中,通过文件***(如pstore(persistent storage,一种持久性文件***))虽然可以记录控制台输出的内核态数据,为内核转存服务的调试提供数据支持,但是通过上述实际运行场景中出现的情形可知,导致内核转存服务异常的因素可能出现在内核态,还可能出现在用户态,因此相关技术中无法实现快速、高效地实现内核转存服务的调试维护,进而难以保障内核转存服务正常运行,导致用户无法快速分析内核崩溃原因,用户体验差等问题。
为了解决上述问题,本发明实施例提供了一种内核转存服务的调试方法,如图1所示,该内核转存服务的调试方法主要包括:
步骤S101,在生产内核崩溃并触发内核转存服务时,通过在终端设备驱动的数据接收端设置的数据获取节点获取用户态数据,并将用户态数据存储至文件***的存储端对应的数据文件空间中;其中,文件***的存储端对应的数据文件空间占用捕获内核的预留内存空间。
具体地,图2a示出了本发明一个实施例中生产内核运行时用户态数据传输所对应的示意图,如图2a所示,用户态数据经由应用程序产生,终端设备(tty,Teletypewriter的简称,泛指终端设备)中的tty核心从应用程序中获取将要发送至一个终端设备的用户态数据,并将该用户态数据传送至tty线路规程,由tty线路规程将该用户态数据发送至tty驱动,并将该用户态数据转存至生产内核的内存空间中。
图2b示出了本发明一个实施例中生产内核崩溃时用户态数据传输所对应的示意图,如图2b所示,在tty驱动之前设置了一个数据获取节点,该数据获取节点拦截将要发送至tty驱动户态数据,并将该用户态数据转存至文件***的存储端。其中,本发明实施例中,在生产内核的内存空间中预留部分作为捕获内核的内存空间,并在捕获内核的内核空间中预留部分作为文件***的存储端对应的数据文件空间。
通过前述分析可知,导致内核转存服务异常的原因可能发生在用户态,通过上述设置,利用设置在终端设备驱动的数据接收端的数据获取节点,在生产内核崩溃并触发内核转存服务时,获取内核转存服务运行时的用户态数据,并将所获取的用户态数据存储至文件***的存储端中,且文件***的存储端的数据文件空间位于捕获内核的内存空间中,即从捕获内核的内存空间中预留出部分内存空间作为文件***的存储端专用的存储区,使得即使生产内核崩溃、内核转存服务触发运行时发生异常,也能有效存储相应的用户态数据,便于后续在生产内核重新启动之后,通过从存储端获取用户态数据进行内核转存服务的调试,分析内核转存服务的原因。
在其中的一些实施例中,在上述生产内核崩溃并触发内核转存服务的步骤之前,上述方法还包括:
在操作***的捕获内核的内存空间中配置文件***的存储端对应的数据文件空间,在终端设备驱动的数据接收端设置数据获取节点,并配置数据获取节点对应的数据获取参数;其中,数据获取参数指示了数据获取条件和数据存储地址,数据存储地址为文件***的存储端对应的数据文件空间,数据获取条件为生产内核崩溃并触发内核转存服务时。
相关技术中,文件***可以通过记录控制台输出的内核态数据,且文件***仅支持单个存储端,文件***通过该单个存储端存储记录控制台输出的内核态数据,以为内核转存服务调试提供数据支持,进而只能从内核态数据维度分析导致内核转存服务异常的原因,若导致内核转存服务异常的原因出现在用户态,则会出现调试失败,无法确定内核转存服务的异常原因的情形。通过上述设置,在捕获内核的内存空间中配置文件***的一个存储端的数据文件空间,以定向存储生成内核崩溃且内核转存服务运行时,设置在终端设备驱动的数据接收端的数据获取节点所获取的用户态数据,由于存储端的数据文件空间位于捕获内核的内存空间中,占有捕获内核的内存空间中的部分专用的预留内存空间,使得即使生产内核崩溃、内核转存服务触发运行时发生异常,所存储的用户态数据也能够有效存储,为后续生产内核重新启动后,通过分析所存储的用户态数据对内核转存服务进行用户态数据维度的调试提供了数据支持,且在捕获内核的内存空间中配置文件***的存储端的数据文件空间,对生产内核无修改,不影响内核转存服务的原有功能,保障了内核转存服务的稳定性,泛用性高。
可选地,在其中的一些实施例中,上述在操作***的捕获内核的内存空间中配置文件***的存储端对应的数据文件空间的步骤还包括:
根据操作***的生产内核的内存空间容量确定捕获内核的内存空间容量,并根据捕获内核的内存空间容量,在生产内核的内存空间中配置捕获内核的内存空间;根据捕获内核的内存空间容量确定文件***的存储端对应的数据文件空间容量,并在捕获内核的内存空间中配置文件***的存储端对应的数据文件空间。
生产内核承担了操作***的主要功能,其所需的内存空间较大,为了保障操作***的正常运行,在生产内核的内存空间中预留出捕获内核的内存空间时,需要根据生产内核的内存空间容量来确定捕获内核的内存空间容量,例如,生产内核的内存空间容量为2G时,可预留128M的内存空间作为捕获内核的内存空间容量。同时,由于位于捕获内核的内存空间的文件***存储端的数据文件空间是用于存储生产内核崩溃且内核转存服务运行时产生的用户态数据,其所需的内存容量较小,例如,可以从捕获内核的内存空间容量中预留千分之一作为文件***的存储端的数据文件空间容量,需要说明的是,上述数值仅为示例,并不作为对本发明的限定。
步骤S102,在生产内核重新启动后,从文件***的存储端对应的数据文件空间中获取用户态数据,根据用户态数据进行内核转存服务的调试。
在生产内核重新启动后,从文件***的存储端对应的数据文件空间获取之前存储的用户态数据,执行内核转存服务在用户态数据维度的调试操作,以确定内核转存服务的异常原因,进而对内核转存服务进行维护,以便于保障内核转存服务能够正常运行,在生产内核崩溃时,能够顺利生成内核转储文件,进而分析生产内核崩溃原因,保障操作***的运行稳定性。
具体地,在其中的一些实施例中,上述方法还包括:
配置文件***的存储端对应的数据压缩策略和数据解压策略;在向文件***的存储端存储数据时,根据上述数据压缩策略对所存储的数据进行压缩处理;在从文件***的存储端获取数据时,根据上述数据解压策略对所获取的数据进行解压处理。
通过上述设置,在向文件***存储端存储数据时,结合数据压缩策略对所存储的数据进行压缩处理,有助于进一步节省文件***存储端对应的内存空间。
示例性地,在其中的一些实施例中,上述方法还包括:
通过文件***的数据获取端获取内核转存服务触发时产生的内核态数据,并将内核态数据存储至文件***的存储端;其中,内核态数据和用户态数据分别存储在文件***的存储端的不同位置。
其中,本发明实施例提供的文件***的存储端为多个,其目的是在生产内核崩溃时,将文件***存储的数据(内核态数据和用户态数据)存储至配置在崩溃内核的内存空间内的一个存储端内,而将文件***为满足自身服务需求的其他数据存储至其他存储端中,以避免文件***所需存储的其他数据占用内核态数据和用户态数据的存储空间,导致无法有效存储进而影响后续分析内核转存服务异常的原因。前述在崩溃内核的内存空间配置了文件***的一个存储端的数据文件空间,可以在生产内核崩溃且触发内核转存服务后,将内核转存服务运行过程中的用户态数据存储至该存储端对应的数据文件空间,以便从用户态数据维度进行内核转存服务的调试,确定用户态数据维度导致内核转存服务异常的原因。通过上述设置,可利用文件***的数据获取端获取内核转存服务运行时产生的内核态数据,并将内核态数据存储至文件***的存储端的另一个存储位置(以将文件***存储端中存储的内核态数据与用户态数据进行区分),以便后续从内核态数据维度进行内核转存服务的调试,分析内核态数据维度导致内核转存服务异常的原因。即本发明在生产内核崩溃并触发内核转存服务时,通过文件***的存储端的不同位置分别存储用户态数据和内核态数据,进而从两个数据维度分析导致内核转存服务异常的原因,实现了高效、全面、准确地内核转存服务调试,提高了调试准确率和调试效率,保障了内核转存服务的正常运行,提升了用户体验。
进一步地,在其中的一些实施例中,在生产内核重新启动后,上述方法还包括:
从文件***的存储端获取内核态数据,根据内核态数据进行内核转存服务的调试。
通过上述设置,实现了从内核态数据维度进行内核转存服务的调试,分析内核态数据维度导致内核转存服务异常的原因。可以理解的是,若在从用户态数据维度执行内核转存服务的调试后,已经确定了内核转存服务异常的原因,则可不再执行根据内核态数据进行内核转存服务的调试操作,通过上述设置,可以在保障调试准确率的基础上,进一步提高调试效率。
可选地,在其中的一些实施例中,上述方法还包括:
通过文件***的数据获取端获取内核跟踪信息和用户日志信息,并将内核跟踪信息和用户日志信息分别存储至文件***的存储端的不同位置。
通过为文件***设置多个存储端,一个存储端用于分别存储生产内核崩溃且内核转存服务运行时的用户态数据和内核态数据,其他存储端用于存储文件***所需存储的其他数据,即避免了对文件***自身服务正常运行的影响,还有助于后续分别从内核态数据维度和用户态维度进行内核转存服务调试。进一步地,还可以将内核运行日志和用户日志信息分别存储在文件***的存储端的不同位置,以实现在文件***的存储端的不同存储地址中分别存储不同类型的数据,并在生产内核重新启动之后,获取所存储的数据进行相应的处理(如根据内核跟踪信息对Linux进行代码级实践分析处理,根据用户日志信息对用户行为进行分析处理等),提高了处理效率。
示例性地,在其中的一些实施例中,上述方法还包括:
根据调试结果确定内核转存服务的异常原因,并根据异常原因对内核转存服务进行维护,以使得:在生产内核崩溃并触发内核转存服务时,启动捕获内核捕获生产内核的内核态数据并生成内核转储文件,并根据内核转储文件确定内核崩溃原因。
通过对内核转存服务进行调试,确定内核转存服务的异常原因并进行维护,保障内核转存服务能够正常运行。保证了在生产内核崩溃时,触发内核转存服务,能够顺利启动捕获内核捕获生产内核产生的内核态数据并生成内核转储文件,便于用户根据内核转储文件分析内核崩溃原因,从而对操作***的代码进行改进,以保障操作***的稳定性,提升用户体验。
本发明实施例所提供的上述内核转存服务的调试方法,由于通过在终端设备驱动的数据接收端设置数据获取节点,在操作***的捕获内核中配置文件***的存储端的数据文件空间,当生产内核崩溃并触发内核转存服务时,通过文件***的存储端存储从数据获取节点获取的用户态数据,并在生产内核重新启动后,根据用户态数据进行内核转存服务的调试。实现了及时有效地对内核转存服务进行调试维护,提高了调试效率,降低了调试成本,有效保障了内核转存服务的正常运行,进而便于用户快速分析内核崩溃原因,提升了用户体验的技术效果。
为了解决上述问题,本发明实施例还提供另一种内核转存服务的调试方法,应用于Linux***中内核转存服务的调试。如图3a所示,该内核转存服务的调试方法主要包括:
步骤S301,在操作***的捕获内核的内存空间中配置文件***的一个存储端对应的数据文件空间,在终端设备驱动的数据接收端设置数据获取节点,并配置数据获取节点对应的数据获取参数;其中,数据获取参数指示了数据获取条件和数据存储地址,数据存储地址为文件***的存储端对应的数据文件空间,数据获取条件为生产内核崩溃并触发内核转存服务时。
根据本发明实施例的一具体实施方式,可通过cmdline(内核命令行)在production kernel(生产内核)的内存空间中为capture kernel(捕获内核,也可以crashkernel崩溃内核表示)预留内存空间,实现在生产内核的内存空间中配置捕获内核的内存空间。根据本发明实施例的另一具体实施方式,可在tty驱动的前端(即终端设备驱动的数据接收端)设置hook(钩子)点,以生产内核崩溃并触发内核转存服务运行时,将用户态数据存储至文件***的一个存储端对应的数据文件空间,便于后续从用户态数据维度对内核转存服务进行调试,以确定用户态数据维度导致内核转存服务异常的原因。需要说明的是,设置hook点作为数据获取节点仅仅是本发明实施例的一个示例,并不作为对本发明的限定。
进一步地,在其中的一些实施例中,上述在操作***的捕获内核的内存空间中配置文件***的存储端对应的数据文件空间的步骤还包括:
根据操作***的生产内核的内存空间容量确定捕获内核的内存空间容量,并根据捕获内核的内存空间容量,在生产内核的内存空间中配置捕获内核的内存空间;根据捕获内核的内存空间容量确定文件***的存储端对应的数据文件空间容量,并在捕获内核的内存空间中配置文件***的存储端对应的数据文件空间。
具体地,在其中的一些实施例中,如图3b所示,在根据操作***的生产内核的内存空间容量确定捕获内核的内存空间容量之后,在生产内核的内存空间中配置捕获内核的内存空间。在预留空间内存之后,基于kdump(内核转存服务)在用户态收集segment信息(数据文件空间信息),主要包括五个segment,分别是kernel segment(内核数据文件空间,又称内核段,用于读取kexec运行时指定的kernel image(内核信息)),ELF core headersegment(用于为kdump生成vmcore准备ELF core header,其中,ELF是可执行与可链接格式,是一种用于二进制文件、可执行文件、目标代码、共享库和核心转储格式的文件格式),initrd segment(初始内存镜像数据文件空间,又称初始内存镜像段,用于读取kexec运行时指定的initrd(初始内存映像)),dtb segment(dtb段,dtb是可以减少linux内核版本的数量的文件,用于读取kexec运行时指定的dtb),purgatory segment(用于完成crashkernel完整性校验和kernel跳转)。本发明实施例在Kdump原有的segment的基础上增加配置了pstore segmengt(即文件***的存储端的数据文件空间),用于在生产内核崩溃并触发内核转存服务运行异常时(其中,内核转存服务运行异常主要是指无法顺利生成内核转储文件vmcore,从而导致无法分析内核崩溃原因),存储内核转存服务运行时的用户态数据,以便于后续根据该用户态数据进行内核转存服务的调试操作,分析内核转存服务的异常原因。
由于相关技术中,文件***仅支持单个存储端,文件***通过该单个存储端存储记录控制台输出的内核态数据,以为内核转存服务调试提供数据支持,进而只能从内核态数据维度分析导致内核转存服务异常的原因,若导致内核转存服务异常的原因出现在用户态,则会出现调试失败,无法确定内核转存服务的异常原因的情形。通过上述设置,在捕获内核的内存空间中配置文件***的一个存储端的数据文件空间,以定向存储生成内核崩溃且内核转存服务运行时,设置在终端设备驱动的数据接收端的数据获取节点所获取的用户态数据,由于存储端的数据文件空间位于捕获内核的内存空间中,使得即使生产内核崩溃、内核转存服务触发运行时发生异常,所存储的用户态数据也能够有效存储,为后续生产内核重新启动后,通过分析所存储的用户态数据对内核转存服务进行用户态数据维度的调试提供了数据支持,且在捕获内核的内存空间中配置文件***的存储端的数据文件空间,对生产内核无修改,不影响内核转存服务的原有功能,保障了内核转存服务的稳定性,泛用性高。
步骤S302,在生产内核崩溃并触发内核转存服务时,通过在终端设备驱动的数据接收端设置的数据获取节点获取用户态数据,并将用户态数据存储至文件***的存储端对应的数据文件空间中;其中,文件***的存储端对应的数据文件空间占用捕获内核的预留内存空间。
当生产内核崩溃时,触发内核转存服务,若内核转存服务能够正常运行,即可捕获生产内核产生的内核态数据并生成vmcore(内核转储文件),但在实际运行过程中,由于内核态数据维度(如捕获内核的内存空间不足、kexec版本过低、CPU架构)、用户态数据维度(OOT驱动)等产生问题,常导致内核转存服务异常,使得无法生成内核转储文件,进而用户无法分析内核崩溃原因。因此,通过上述设置,利用设置在终端设备驱动的数据接收端的数据获取节点,在生产内核崩溃并触发内核转存服务时,获取内核转存服务运行时的用户态数据,并将所获取的用户态数据存储至文件***的一个存储端对应的数据文件空间中,且文件***的存储端的数据文件空间位于捕获内核的内存空间中,即从捕获内核的内存空间中预留出部分内存空间作为文件***的存储端专用的存储区,使得即使生产内核崩溃、内核转存服务触发运行时发生异常,也能有效存储相应的用户态数据,便于后续在生产内核重新启动之后,通过从存储端获取用户态数据进行内核转存服务的调试,分析内核转存服务的原因。
步骤S303,通过文件***的数据获取端获取内核转存服务触发时产生的内核态数据,并将内核态数据存储至文件***的存储端;内核态数据和用户态数据分别存储在文件***的存储端的不同位置。
如图3c所示,针对在生产内核崩溃且触发内核转存服务运行时产生的内核态数据,经由文件***的控制台console记录,并存储文件***的一个存储端;针对在生产内核崩溃且触发内核转存服务运行时产生的用户态数据,通过在终端设备驱动前端设置数据捕获节点,在生产内核崩溃且触发内核转存服务运行时,实际上是将用户态数据进行了重定向处理,使得用户态数据经由文件***的数据获取端存储至文件***的存储端,且用户态数据和内核态数据分别存储在文件***的存储端的不同位置。具体地,在步骤S302中,通过在崩溃内核的内存空间配置了文件***的一个存储端的数据文件空间,可以在生产内核崩溃且触发内核转存服务后,将内核转存服务运行过程中的用户态数据存储至该存储端对应的数据文件空间,以便从用户态数据维度进行内核转存服务的调试,确定用户态数据维度导致内核转存服务异常的原因,但是无法获取内核态数据,无法从内核态数据维度对内核转存服务进行调试。通过上述步骤S303的设置,可利用文件***的数据获取端获取内核转存服务运行时产生的内核态数据,并将内核态数据存储至文件***的存储端,以便后续从内核态数据维度进行内核转存服务的调试,分析内核态数据维度导致内核转存服务异常的原因。即本发明在生产内核崩溃并触发内核转存服务时,通过文件***的一个存储端分别用户态数据和内核态数据,其他存储端用于存储文件***其他服务需求对应的数据,既满足了文件***自身服务的正常运行,还便于从两个数据维度分析导致内核转存服务异常的原因,实现了高效、全面、准确地内核转存服务调试,提高了调试准确率和调试效率,保障了内核转存服务的正常运行,提升了用户体验。
其中,本发明所提供的文件***具备多个存储端,一个存储端设置于捕获内核的内存空间中,即是从捕获内核的内存空间中预留部分作为文件***的一个存储端的segment(数据文件空间),以用于存储用户态数据和内核态数据,该两个数据分别存储在存储端的不同存储地址;文件***的其他存储端用于存储文件***其他服务需求对应的数据。文件***的多个存储端分别对应不同的存储地址,以便于后续分析中,可依次从多个存储端中获取用户态数据、内核态数据进行内核转存服务的调试操作。若根据内核态数据对内核转存服务进行调试即可确定kdump的异常原因,可不再获取用户态数据再进行调试,从而在保证调试准确率的情况下,提高了内核转存服务的调试速率。
步骤S304,在生产内核重新启动后,从文件***的存储端分别获取用户态数据和内核态数据,根据用户态数据和内核态数据进行内核转存服务的调试。
在生产内核重新启动后,从文件***的存储端对应的数据文件空间获取之前存储的用户态数据,执行内核转存服务在用户态数据维度的调试操作,以确定内核转存服务的异常原因,进而对内核转存服务进行维护,以便于保障内核转存服务能够正常运行,在生产内核崩溃时,能够顺利生成内核转储文件,进而分析生产内核崩溃原因,保障操作***能够工作。
通过上述设置,实现了从内核态数据维度进行内核转存服务的调试,分析内核态数据维度导致内核转存服务异常的原因。可以理解的是,若在从用户态数据维度执行内核转存服务的调试后,已经确定了内核转存服务异常的原因,则可不再执行根据内核态数据进行内核转存服务的调试操作,通过上述设置,可以在保障调试准确率的基础上,进一步提高调试效率。
具体地,在其中的一些实施例中,上述方法还包括:
配置文件***的存储端对应的数据压缩策略和数据解压策略;在向文件***的存储端存储数据时,根据上述数据压缩策略对所存储的数据进行压缩处理;在从文件***的存储端获取数据时,根据上述数据解压策略对所获取的数据进行解压处理。
通过上述设置,在向文件***存储端存储数据时,结合数据压缩策略对所存储的数据进行压缩处理,有助于进一步节省文件***存储端对应的内存空间。
在其中的一些实施例中,上述方法还包括:
通过文件***的数据获取端获取内核跟踪信息和用户日志信息,并将内核跟踪信息和用户日志信息分别存储至文件***的不同存储端。
通过为文件***设置多个存储端,一个存储端存储生产内核崩溃且内核转存服务运行时的用户态数据和内核态数据,其他存储端用于存储文件***其他服务需求对应的数据,实现了在满足了文件***自身服务的正常运行的情形下,后续可以分别从内核态数据维度和用户态维度进行内核转存服务调试。进一步地,还可以将ftrace(function trace的简称,即内核跟踪信息)和pmsg(即用户日志信息)等多种信息分别存储在文件***存储端的不同位置(即存储地址),以实现在文件***的存储端的不同存储地址分别存储不同类型的数据,并在生产内核重新启动之后,获取所存储的数据进行相应的处理,提高了处理效率。
步骤S305,根据调试结果确定内核转存服务的异常原因,并根据异常原因对内核转存服务进行维护,以使得:在生产内核崩溃并触发内核转存服务时,启动捕获内核捕获生产内核的内核态数据并生成内核转储文件,并根据内核转储文件确定内核崩溃原因。
通过对内核转存服务进行调试,确定内核转存服务的异常原因并进行维护,保障内核转存服务能够正常运行。保证了在生产内核崩溃时,触发内核转存服务,能够顺利启动捕获内核捕获生产内核产生的内核态数据并生成内核转储文件,便于用户根据内核转储文件分析内核崩溃原因,从而对操作***的代码进行改进,以保障操作***的稳定性,提升用户体验。
同时需要指出的是,本发明实施例中分别根据用户态数据、内核态数据对内核转存数据并不限定步骤上的先后顺序,可先根据用户态数据进行调试,也可先根据内核态数据进行调试,还可以根据用户态数据和内核态数据同时对内核转存服务进行调试。
本发明实施例所提供的上述内核转存服务的调试方法,由于通过在终端设备驱动的数据接收端设置数据获取节点,在操作***的捕获内核中配置文件***的存储端的数据文件空间,当生产内核崩溃并触发内核转存服务时,通过文件***的存储端存储从数据获取节点获取的用户态数据,并在生产内核重新启动后,根据用户态数据进行内核转存服务的调试。实现了及时有效地对内核转存服务进行调试维护,提高了调试效率,降低了调试成本,有效保障了内核转存服务的正常运行,进而便于用户快速分析内核崩溃原因,提升了用户体验的技术效果。
基于本发明实施例提供的上述内核转存服务的调试方法,本发明实施例还提供一种内核转存服务的调试***,该内核转存服务的调试***400包括:
存储单元401,用于在生产内核崩溃并触发内核转存服务时,通过在终端设备驱动的数据接收端设置的数据获取节点获取用户态数据,并将用户态数据存储至文件***的存储端对应的数据文件空间中;其中,文件***的存储端对应的数据文件空间占用捕获内核的预留内存空间。
由于导致内核转存服务异常的原因可能发生在用户态,通过上述设置,利用设置在终端设备驱动的数据接收端的数据获取节点,在生产内核崩溃并触发内核转存服务时,获取内核转存服务运行时的用户态数据,并将所获取的用户态数据存储至文件***的存储端中,且文件***的存储端的数据文件空间位于捕获内核的内存空间中,即从捕获内核的内存空间中预留出部分内存空间作为文件***的存储端专用的存储区,使得即使生产内核崩溃、内核转存服务触发运行时发生异常,也能有效存储相应的用户态数据,便于后续在生产内核重新启动之后,通过从存储端获取用户态数据进行内核转存服务的调试,分析内核转存服务的原因。
在其中的一些实施例中,上述内核转存服务的调试***400还包括配置单元,在上述生产内核崩溃并触发内核转存服务的步骤之前,上述配置单元用于:
在操作***的捕获内核的内存空间中配置文件***的存储端对应的数据文件空间,在终端设备驱动的数据接收端设置数据获取节点,并配置数据获取节点对应的数据获取参数;其中,数据获取参数指示了数据获取条件和数据存储地址,数据存储地址为文件***的存储端对应的数据文件空间,数据获取条件为生产内核崩溃并触发内核转存服务时。
相关技术中,文件***可以通过记录控制台输出的内核态数据,且文件***仅支持单个存储端,文件***通过该单个存储端存储记录控制台输出的内核态数据,以为内核转存服务调试提供数据支持,进而只能从内核态数据维度分析导致内核转存服务异常的原因,若导致内核转存服务异常的原因出现在用户态,则会出现调试失败,无法确定内核转存服务的异常原因的情形。通过上述设置,在捕获内核的内存空间中配置文件***的一个存储端的数据文件空间,以定向存储生成内核崩溃且内核转存服务运行时,设置在终端设备驱动的数据接收端的数据获取节点所获取的用户态数据,由于存储端的数据文件空间位于捕获内核的内存空间中,使得即使生产内核崩溃、且内核转存服务触发运行时发生异常,所存储的用户态数据也能够有效存储,为后续生产内核重新启动后,通过分析所存储的用户态数据对内核转存服务进行用户态数据维度的调试提供了数据支持,且在捕获内核的内存空间中配置文件***的存储端的数据文件空间,对生产内核无修改,不影响内核转存服务的原有功能,保障了内核转存服务的稳定性,泛用性高。
在其中的一些实施例中,上述配置单元还用于:
根据操作***的生产内核的内存空间容量确定捕获内核的内存空间容量,并根据捕获内核的内存空间容量,在生产内核的内存空间中配置捕获内核的内存空间;根据捕获内核的内存空间容量确定文件***的存储端对应的数据文件空间容量,并在捕获内核的内存空间中配置文件***的存储端对应的数据文件空间。
生产内核承担了操作***的主要功能,其所需的内存空间较大,为了保障操作***的正常运行,在生产内核的内存空间中预留出捕获内核的内存空间时,需要根据生产内核的内存空间容量来确定捕获内核的内存空间容量,例如,生产内核的内存空间容量为2G时,可预留128M的内存空间作为捕获内核的内存空间容量。同时,由于位于捕获内核的内存空间的文件***存储端的数据文件空间是用于存储生产内核崩溃且内核转存服务运行时产生的用户态数据,其所需的内存容量较小,例如,可以从捕获内核的内存空间容量中预留千分之一作为文件***的存储端的数据文件空间容量,需要说明的是,上述数值仅为示例,并不作为对本发明的限定。
调试单元402,用于在生产内核重新启动后,从文件***的存储端对应的数据文件空间中获取用户态数据,根据用户态数据进行内核转存服务的调试。
在生产内核重新启动后,从文件***的存储端对应的数据文件空间获取之前存储的用户态数据,执行内核转存服务在用户态数据维度的调试操作,以确定内核转存服务的异常原因,进而对内核转存服务进行维护,以便于保障内核转存服务能够正常运行,在生产内核崩溃时,能够顺利生成内核转储文件,进而分析生产内核崩溃原因,保障操作***的运行稳定性。
具体地,在其中的一些实施例中,上述内核转存服务的调试装置400还包括压缩和解压处理单元,用于:
配置文件***的存储端对应的数据压缩策略和数据解压策略;在向文件***的存储端存储数据时,根据上述数据压缩策略对所存储的数据进行压缩处理;在从文件***的存储端获取数据时,根据上述数据解压策略对所获取的数据进行解压处理。
通过上述设置,在向文件***的存储端存储数据时,结合数据压缩策略对所存储的数据进行压缩处理,有助于进一步节省文件***存储端对应的内存空间。
示例性地,在其中的一些实施例中,上述存储单元401还用于:
通过文件***的数据获取端获取内核转存服务触发时产生的内核态数据,并将内核态数据存储至文件***的存储端;其中,内核态数据和用户态数据分别存储在文件***的存储端的不同位置。
其中,本发明实施例提供的文件***的存储端为多个,其目的是在生产内核崩溃时,将文件***存储的数据(内核态数据和用户态数据)存储至配置在崩溃内核的内存空间内的一个存储端内,而将文件***为满足自身服务需求的其他数据存储至其他存储端中,以避免文件***所需存储的其他数据占用内核态数据和用户态数据的存储空间,导致无法有效存储进而影响后续分析内核转存服务异常的原因。前述在崩溃内核的内存空间配置了文件***的一个存储端的数据文件空间,可以在生产内核崩溃且触发内核转存服务运行发生异常时,将内核转存服务运行过程中的用户态数据存储至该存储端对应的数据文件空间,以便从用户态数据维度进行内核转存服务的调试,确定用户态数据维度导致内核转存服务异常的原因。通过上述设置,可利用文件***的数据获取端获取内核转存服务运行时产生的内核态数据,并将内核态数据存储至文件***的存储端的另一个存储位置(以将文件***存储端中存储的内核态数据与用户态数据进行区分),以便后续从内核态数据维度进行内核转存服务的调试,分析内核态数据维度导致内核转存服务异常的原因。即本发明在生产内核崩溃并触发内核转存服务时,通过文件***的存储端的不同位置分别存储用户态数据和内核态数据,进而从两个数据维度分析导致内核转存服务异常的原因,实现了高效、全面、准确地内核转存服务调试,提高了调试准确率和调试效率,保障了内核转存服务的正常运行,提升了用户体验。
进一步地,在其中的一些实施例中,在生产内核重新启动后,上述调试单元402还用于:
从文件***的存储端获取内核态数据,根据内核态数据进行内核转存服务的调试。
通过上述设置,实现了从内核态数据维度进行内核转存服务的调试,分析内核态数据维度导致内核转存服务异常的原因。可以理解的是,若在从用户态数据维度执行内核转存服务的调试后,已经确定了内核转存服务异常的原因,则可不再执行根据内核态数据进行内核转存服务的调试操作,通过上述设置,可以在保障调试准确率的基础上,进一步提高调试效率。
在其中的一些实施例中,上述存储单元401还用于:
通过文件***的数据获取端获取内核跟踪信息和用户日志信息,并将内核跟踪信息和用户日志信息分别存储至文件***的存储端的不同位置。
通过为文件***设置多个存储端,一个存储端用于分别存储生产内核崩溃且内核转存服务运行时的用户态数据和内核态数据,其他存储端用于存储文件***所需存储的其他数据,即避免了对文件***自身服务正常运行的影响,还有助于后续分别从内核态数据维度和用户态维度进行内核转存服务调试。进一步地,还可以将内核运行日志和用户日志信息分别存储在文件***的存储端的不同位置,以实现在文件***的存储端的不同存储地址中分别存储不同类型的数据,并在生产内核重新启动之后,获取所存储的数据进行相应的处理,提高了数据处理效率。
示例性地,在其中的一些实施例中,上述内核转存服务的调试***400还包括维护单元,用于:
根据调试结果确定内核转存服务的异常原因,并根据异常原因对内核转存服务进行维护,以使得:在生产内核崩溃并触发内核转存服务时,启动捕获内核捕获生产内核的内核态数据并生成内核转储文件,并根据内核转储文件确定内核崩溃原因。
通过对内核转存服务进行调试,确定内核转存服务的异常原因并进行维护,保障内核转存服务能够正常运行。保证了在生产内核崩溃时,触发内核转存服务,能够顺利启动捕获内核捕获生产内核产生的内核态数据并生成内核转储文件,便于用户根据内核转储文件分析内核崩溃原因,从而对操作***的代码进行改进,以保障操作***的稳定性,提升用户体验。
本发明实施例所提供的上述内核转存服务的调试装置,由于通过在终端设备驱动的数据接收端设置数据获取节点,在操作***的捕获内核中配置文件***的存储端的数据文件空间,当生产内核崩溃并触发内核转存服务时,通过文件***的存储端存储从数据获取节点获取的用户态数据,并在生产内核重新启动后,根据用户态数据进行内核转存服务的调试。实现了及时有效地对内核转存服务进行调试维护,提高了调试效率,降低了调试成本,有效保障了内核转存服务的正常运行,进而便于用户快速分析内核崩溃原因,提升了用户体验的技术效果。
本发明实施例还提供一种电子设备,包括:至少一个处理器;以及与至少一个处理器通信连接的存储器。上述存储器存储有能够被上述至少一个处理器执行的计算机程序,上述计算机程序在被上述至少一个处理器执行时用于使电子设备执行本发明实施例的方法。
本发明实施例还提供一种存储有计算机程序的非瞬时机器可读介质,其中,上述计算机程序在被计算机的处理器执行时用于使上述计算机执行本发明实施例的方法。
本发明实施例还提供一种计算机程序产品,包括计算机程序,其中,计算机程序在被计算机的处理器执行时用于使计算机执行本发明实施例的方法。
参考图5,现将描述可以作为本发明实施例的服务器或客户端的电子设备的结构框图,其是可以应用于本发明的各方面的硬件设备的示例。电子设备旨在表示各种形式的数字电子的计算机设备,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本发明的实现。
如图4所示,电子设备包括计算单元501,其可以根据存储在只读存储器(ROM)502中的计算机程序或者从存储单元508加载到随机访问存储器(RAM)503中的计算机程序,来执行各种适当的动作和处理。在RAM 503中,还可存储电子设备操作所需的各种程序和数据。计算单元501、ROM 502以及RAM503通过总线504彼此相连。输入/输出(I/O)接口505也连接至总线504。
电子设备中的多个部件连接至I/O接口505,包括:输入单元506、输出单元507、存储单元508以及通信单元509。输入单元506可以是能向电子设备输入信息的任何类型的设备,输入单元506可以接收输入的数字或字符信息,以及产生与电子设备的用户设置和/或功能控制有关的键信号输入。输出单元507可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。存储单元508可以包括但不限于磁盘、光盘。通信单元509允许电子设备通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如蓝牙设备、WiFi设备、WiMax设备、蜂窝通信设备和/或类似物。
计算单元501可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元501的一些示例包括但不限于CPU、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元501执行上文所描述的各个方法和处理。例如,在一些实施例中,本发明的方法实施例可被实现为计算机程序,其被有形地包含于机器可读介质,例如存储单元508。在一些实施例中,计算机程序的部分或者全部可以经由ROM 502和/或通信单元509而被载入和/或安装到电子设备上。在一些实施例中,计算单元501可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行上述的方法。
用于实施本发明实施例的方法的计算机程序可以采用一个或多个编程语言的任何组合来编写。这些计算机程序可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得计算机程序当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。计算机程序可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本发明实施例的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行***、装置或设备使用或与指令执行***、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读信号介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体***、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
需要说明的是,本发明实施例使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。本发明实施例中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本发明实施例所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于调试分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据,并且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准,并提供有相应的操作入口,供用户选择授权或者拒绝。
本发明实施例所提供的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本发明的保护范围在此方面不受限制。
“实施例”一词在本说明书中指的是结合实施例描述的具体特征、结构或特性可以包括在本发明的至少一个实施例中。该短语出现在说明书中的各个位置并不一定意味着相同的实施例,也不意味着与其它实施例相互排斥而具有独立性或可供选择。本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见。尤其,对于装置、设备、***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对专利保护范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明的保护范围应以所附权利要求为准。
Claims (10)
1.一种内核转存服务的调试方法,包括:
在生产内核崩溃并触发内核转存服务时,通过在终端设备驱动的数据接收端设置的数据获取节点获取用户态数据,并将所述用户态数据存储至文件***的存储端对应的数据文件空间中;其中,所述文件***的存储端对应的数据文件空间占用捕获内核的预留内存空间;
在所述生产内核重新启动后,从所述文件***的存储端对应的数据文件空间中获取所述用户态数据,根据所述用户态数据进行内核转存服务的调试。
2.根据权利要求1所述的方法,其中,所述方法还包括:
通过所述文件***的数据获取端获取内核转存服务触发时产生的内核态数据,并将所述内核态数据存储至所述文件***的存储端;其中,所述内核态数据和所述用户态数据分别存储在所述文件***的存储端的不同位置。
3.根据权利要求2所述的方法,其中,在所述生产内核重新启动后,所述方法还包括:
从所述文件***的存储端获取所述内核态数据,根据所述内核态数据进行内核转存服务的调试。
4.根据权利要求1所述的方法,其中,所述在生产内核崩溃并触发内核转存服务的步骤之前,所述方法还包括:
在所述操作***的捕获内核的内存空间中配置所述文件***的存储端对应的数据文件空间,在所述终端设备驱动的数据接收端设置所述数据获取节点,并配置所述数据获取节点对应的数据获取参数;其中,所述数据获取参数指示了数据获取条件和数据存储地址,所述数据存储地址为所述文件***的存储端对应的数据文件空间,所述数据获取条件为生产内核崩溃并触发内核转存服务时。
5.根据权利要求4所述的方法,其中,所述在所述操作***的捕获内核的内存空间中配置所述文件***的存储端对应的数据文件空间的步骤还包括:
根据所述操作***的生产内核的内存空间容量确定所述捕获内核的内存空间容量,并根据所述捕获内核的内存空间容量,在所述生产内核的内存空间中配置所述捕获内核的内存空间;
根据所述捕获内核的内存空间容量确定所述文件***的存储端对应的数据文件空间容量,并在所述捕获内核的内存空间中配置所述文件***的存储端对应的数据文件空间。
6.根据权利要求1所述的方法,其中,所述方法还包括:
通过所述文件***的数据获取端获取内核跟踪信息和用户日志信息,并将所述内核跟踪信息和所述用户日志信息分别存储至所述文件***的存储端的不同位置。
7.根据权利要求1所述的方法,其中,所述方法还包括:
根据调试结果确定所述内核转存服务的异常原因,并根据所述异常原因对所述内核转存服务进行维护。
8.一种内核转存服务的调试***,包括:
存储单元,用于在生产内核崩溃并触发内核转存服务时,通过在终端设备驱动的数据接收端设置的数据获取节点获取用户态数据,并将所述用户态数据存储至文件***的存储端对应的数据文件空间中;其中,所述文件***的存储端对应的数据文件空间占用捕获内核的预留内存空间;
调试单元,用于在所述生产内核重新启动后,从所述文件***的存储端对应的数据文件空间中获取所述用户态数据,根据所述用户态数据进行内核转存服务的调试。
9.一种电子设备,包括:处理器,以及存储程序的存储器,其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行根据权利要求1-7中任一项所述的方法。
10.一种存储有计算机指令的非瞬时机器可读介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310635475.7A CN116719671A (zh) | 2023-05-31 | 2023-05-31 | 一种内核转存服务的调试方法及其相关设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310635475.7A CN116719671A (zh) | 2023-05-31 | 2023-05-31 | 一种内核转存服务的调试方法及其相关设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116719671A true CN116719671A (zh) | 2023-09-08 |
Family
ID=87870776
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310635475.7A Pending CN116719671A (zh) | 2023-05-31 | 2023-05-31 | 一种内核转存服务的调试方法及其相关设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116719671A (zh) |
-
2023
- 2023-05-31 CN CN202310635475.7A patent/CN116719671A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109542744B (zh) | 检测终端开机异常问题的方法、装置、存储介质及终端 | |
US9026860B2 (en) | Securing crash dump files | |
JP4459290B2 (ja) | オペレーティングシステムの停止状態からの高速起動 | |
US20130179670A1 (en) | Booting method of multimedia device and multimedia device | |
CN110633190B (zh) | 一种应用程序内存监控方法、装置、设备及存储介质 | |
EP3274839B1 (en) | Technologies for root cause identification of use-after-free memory corruption bugs | |
CN106997313B (zh) | 一种应用程序的信号处理方法、***及终端设备 | |
CN111158945B (zh) | 内核故障处理方法、装置、网络安全设备和可读存储介质 | |
EP2869189A1 (en) | Boot up of a multiprocessor computer | |
CN114184885A (zh) | 一种故障检测方法、装置及存储介质 | |
CN105824622B (zh) | 数据处理方法及电子设备 | |
CN116719671A (zh) | 一种内核转存服务的调试方法及其相关设备 | |
US8984336B1 (en) | Systems and methods for performing first failure data captures | |
CN113448762B (zh) | 一种死机处理方法、***、智能设备及存储介质 | |
CN115292077A (zh) | 内核异常处理方法及*** | |
CN115951949A (zh) | 一种bios的配置参数的恢复方法、装置及计算设备 | |
CN115712539A (zh) | 车载日志记录方法、装置和控制器 | |
CN114721877A (zh) | 一种软件容错恢复方法、装置、设备及存储介质 | |
CN113468020A (zh) | 内存监控方法、装置、电子设备及计算机可读存储介质 | |
CN107274589B (zh) | 一种金融自助终端硬件设备的访问方法、***及终端设备 | |
CN111475335A (zh) | 一种数据库快速恢复的方法、***、终端及存储介质 | |
CN110908866A (zh) | 软件监控方法及相关设备 | |
CN112416695B (zh) | 一种全局变量监控方法、装置、设备及存储介质 | |
CN112817769B (zh) | 游戏资源动态缓存方法、装置、存储介质与电子设备 | |
CN114721918A (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 |