CN105159819B - 一种记录内核异常栈及调试信息的方法及系统 - Google Patents
一种记录内核异常栈及调试信息的方法及系统 Download PDFInfo
- Publication number
- CN105159819B CN105159819B CN201510555761.8A CN201510555761A CN105159819B CN 105159819 B CN105159819 B CN 105159819B CN 201510555761 A CN201510555761 A CN 201510555761A CN 105159819 B CN105159819 B CN 105159819B
- Authority
- CN
- China
- Prior art keywords
- kernel
- file
- kernel exception
- exception
- global variable
- 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.)
- Active
Links
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明提供了一种记录内核异常栈及调试信息的方法及系统,该方法包括:预先声明两个全局变量用于保存记录文件句柄和内核异常标志位,同时声明全局变量数组作为保存内核异常信息缓存区;当内核发生异常时,在存储介质中打开用于记录内核异常栈信息的文件,并记录该文件的文件句柄到所述全局变量;同时设置内核发生异常标识;当调用printk函数时,若检测到内核发生异常标识置位,则使用所述全局变量数组缓存当前内核异常栈信息;最后根据文件句柄,将全局变量数组中缓存的内核异常栈信息保存到对应的用于记录内核异常栈信息的文件中。本发明实现了内核异常栈和调试信息的自动记录,并生成文件保存到存储介质中,以便于后续对内核异常进行定位。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种记录内核异常栈及调试信息的方法及系统。
背景技术
现有的网络设备(如防火墙、交换机等)一般都搭载有watchdog功能,即在系统异常或发生重大错误情况下自动重启设备,而在linux内核出现异常时一般会将异常栈信息打印到串口或终端显示器。
但是,现有技术方法的缺点是内核异常栈信息只有打印到串口或显示器功能,没有记录功能,没有显示内核发生异常的时间,设备重启后异常栈就丢失了。而且,如果设备没有连接串口或显示器在发生异常后就自动重启了,如此打印的内核异常栈信息也就随之消失了,进而导致有时测试和研发人员甚至不知道设备发生过异常,而有些设备没有自动重启功能则一直停在内核异常发生时,测试和研发人员发现时也无法从异常栈信息中获取是何时发生的异常。由于内核异常栈信息是解决内核debug必不可少的且至关重要的信息,有时还需要把内核异常栈或调试信息发给后端研发人员定位。
因此,如何实现自动记录内核异常栈和调试信息,以便于文件导出及查看以往发生的内核异常信息,实现内核异常问题的定位,成为目前急需解决的问题之一。
发明内容
针对现有技术方案存在的问题和不足,本发明提供了一种记录内核异常栈及调试信息的方法及系统,实现了内核异常栈和调试信息的自动记录,以便于内核异常问题的定位。
根据本发明的一个方面,提供了一种记录内核异常栈及调试信息的方法,该方法包括:
创建两个全局变量和一个全局变量数组,其中,第一全局变量用于保存文件句柄,第二全局变量用于保存内核异常标识位,全局变量数组用于缓存内核异常信息;
当内核发生异常时,在存储介质中打开用于记录内核异常栈信息的文件,并将该文件的文件句柄记录到第一全局变量中;
设置所述内核异常标识位;
当调用printk函数时,若检测到所述内核异常标识位处于置位状态,则将所述当前内核异常栈信息缓存到所述全局变量数组中;
根据所述文件句柄,将所述全局变量数组中缓存的内核异常栈信息保存到对应的用于记录内核异常栈信息的文件中。
其中,所述方法还包括:
当调用printk函数时,若检测到所述内核异常标识位处于非置位状态,则将当前需要打印的内容打印到串口或显示器。
其中,所述在存储介质中打开用于记录内核异常栈信息的文件之后,还包括:
获取当前系统时间,将所述当前系统时间作为内核异常发生时间记录在所述文件中。
其中,所述当内核发生异常时,在存储介质中打开用于记录内核异常栈信息的文件,具体包括:
当内核发生异常时,触发内核异常处理函数,在内核异常处理函数中打开用于记录内核异常栈信息的文件,该文件所在路径为存储介质;
其中,所述内核异常处理函数为oops内核异常处理函数。
其中,所述oops内核异常处理函数通过调用文件打开函数在存储介质中打开用于记录内核异常栈信息的文件,并生成文件句柄;
保存返回的文件句柄。
根据本发明的另一个方面,提供了一种记录内核异常栈及调试信息的系统,该系统包括:
变量创建模块,用于创建两个全局变量和一个全局变量数组,其中,第一全局变量用于保存文件句柄,第二全局变量用于保存内核异常标识位,全局变量数组用于缓存内核异常信息;
文件打开模块,用于当内核发生异常时,在存储介质中打开用于记录内核异常栈信息的文件,并将该文件的文件句柄记录到第一全局变量中;
标识设置模块,用于设置所述内核异常标识位;
信息缓存模块,用于当调用printk函数时,若检测到所述内核异常标识位处于置位状态,则将所述当前内核异常栈信息缓存到所述全局变量数组中;
信息写入模块,用于根据所述文件句柄,将所述全局变量数组中缓存的内核异常栈信息保存到对应的用于记录内核异常栈信息的文件中。
其中,所述系统还包括:
打印模块,用于当调用printk函数时,若检测到所述内核异常标识位处于非置位状态,则将当前需要打印的内容打印到串口或显示器。
其中,所述系统还包括:
时间获取模块,用于在存储介质中打开用于记录内核异常栈信息的文件之后,获取当前系统时间,将所述当前系统时间作为内核异常发生时间记录在所述文件中。
其中,所述文件打开模块,具体用于当内核发生异常时,触发内核异常处理函数,在内核异常处理函数中打开用于记录内核异常栈信息的文件,该文件所在路径为存储介质;
其中,所述内核异常处理函数为oops内核异常处理函数。
其中,所述文件打开模块,具体通过利用所述oops内核异常处理函数调用文件打开函数在存储介质中打开用于记录内核异常栈信息的文件,并生成文件句柄。
本发明的有益效果为:
本发明提供的记录内核异常栈及调试信息的方法及系统,主要解决了网络设备在现网环境中linux内核出问题的第一时间如何记录内核异常栈及调试信息的问题。通过在内核出现问题时触发的内核异常处理函数中增加操作,获取内核异常栈及调试信息并生成文件保存到存储介质中,以便于后续对内核异常进行定位。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1为本发明实施例提出的一种记录内核异常栈及调试信息的方法的流程图;
图2为本发明实施例提出的一种记录内核异常栈及调试信息的系统的结构框图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非被特定定义,否则不会用理想化或过于正式的含义来解释。
图1示出了本发明实施例的一种记录内核异常栈及调试信息的方法的流程图。
如图1所示,本发明实施例提出的记录内核异常栈及调试信息的方法具体包括以下步骤:
S11、创建两个全局变量和一个全局变量数组,其中,第一全局变量用于保存文件句柄,第二全局变量用于保存内核异常标识位,全局变量数组用于缓存内核异常信息;
本步骤中,预先声明两个全局变量用于保存记录文件句柄和内核异常标志位,同时声明全局变量数组(12K左右)作为保存内核异常信息缓存区。
S12、当内核发生异常时,在存储介质中打开用于记录内核异常栈信息的文件,并将该文件的文件句柄记录到第一全局变量中;
其中,所述当内核发生异常时,在存储介质中打开用于记录内核异常栈信息的文件,具体包括:
当内核发生异常时,触发内核异常处理函数,在内核异常处理函数中打开用于记录内核异常栈信息的文件,该用于记录内核异常栈信息的文件所在路径为存储介质;
其中,所述内核异常处理函数为oops内核异常处理函数。
具体的,所述oops内核异常处理函数通过调用文件打开函数在存储介质中打开用于记录内核异常栈信息的文件,并生成文件句柄;
保存返回的文件句柄。
需要说明的是,oops内核异常处理函数包括oops_begin()和oops_end()函数。当内核发生异常时,内核异常时异常处理流程中必然会走的函数,比如内核挂死时走的die、die_nmi函数,段错误或page页错误时走的函数no_context、do_page_fault等,这些函数中都会先后调用内核异常处理函数oops_begin()和oops_end()函数。
S13、设置所述内核异常标识位;
本发明实施例中,预先声明有用于标记内核发生异常的标志变量即第二全局变量,当内核发生异常时,将所述标志变量进行置位,实现内核发生异常的标识。
S14、当调用printk函数时,若检测到所述内核异常标识位处于置位状态,则将所述当前内核异常栈信息缓存到所述全局变量数组中;
需要说明的是,当内核发生异常时,在先后调用的内核异常处理函数oops_begin()函数和oops_end()函数中间的函数中内核异常栈的打印是通过printk函数实现的。
具体的,printk函数通过判断标记内核发生异常的标志变量是否置位,如果置位则认为内核发生异常,则分配内存作为内核异常信息缓存区,将此后调用printk打印的内核异常栈信息都串联保存到分配的的内存区域中。
S15、根据所述文件句柄,将所述全局变量数组中缓存的内核异常栈信息保存到对应的用于记录内核异常栈信息的文件中。
本发明实施例,通过在oops_begin()打开文件,记录打开的文件句柄并设置内核异常标志位,同时获取系统当前时间记录内核何时发生的异常;当调用printk打印函数时,在printk中判断内核异常标志位是否置位,如果置位则认为内核发生异常了,则此后通过printk打印的信息都记录到预先申请的异常栈信息缓存区;最后在oops_end()流程中根据之前oops_begin()流程中记录的文件句柄将异常栈信息缓存区中的内容写到文件中保存到存储介质。
本发明通过确定内核异常时异常处理流程中必然会走的流程,并在该流程中增加获取内核异常及调试信息并生成文件保存到存储介质中的步骤,解决了网络设备在现网环境中linux内核出问题的第一时间如何记录内核异常栈及调试信息的问题,以便于后续查看以往的内核异常信息,对内核异常进行定位。
本发明实施例中,所述记录内核异常栈及调试信息的方法,进一步包括以下步骤:
当调用printk函数时,若检测到所述内核异常标识位处于非置位状态,则将当前需要打印的内容打印到串口或显示器。
本发明实施例中,在步骤S11中的在存储介质中打开用于记录内核异常栈信息的文件之后,进一步地包括以下步骤:
获取当前系统时间,将所述当前系统时间作为内核异常发生时间记录在所述文件中。
下面通过具体实施例对本发明技术方案进行解释说明,具体实现过程如下:
当内核发生异常时,调用内核异常处理函数oops_begin(),通过内核提供的filp_open()函数在存储介质中打开记录内核异常栈信息的文件(如名称为kernel_debug_info),同时定义全局变量(g_kernel_fd)保存打开的文件句柄(在oops_end中写文件时要用到),定义全局变量(g_kernel_excep_flag)标记内核发生异常的标志,所述定义全局变量(g_kernel_excep_flag)在printk函数处理过程中作为开始记录异常栈信息的标志。进一步地,如果文件打开成功则通过内核提供的Get_LocalCurRtcTime()函数获取当前系统时间,记录内核异常发生的时间;
当调用printk()函数时,判断标记内核发生异常的标志是否置位(全局变量g_kernel_excep_flag)如果置位则认为内核发生异常,进入该分支,定位全局变量数组g_kernel_excep_buffer[]作为内核异常信息缓存区,大小自定义,只要保证能完全缓存内核异常信息即可(g_kernel_excep_buffer[],作为oops_end中写文件时的内容),将此后调用printk打印的内核异常栈信息都串联保存到全局变量数组(g_kernel_excep_buffer[])的内存中;
当进入oops_end()函数流程时,根据之前打开的文件句柄全局变量(g_kernel_fd)和保存的内核异常信息全局变量指针(g_kernel_excep_buffer[])进行写文件操作,具体如下:
g_kernel_fd->f_op->write(g_kernel_fd,g_kernel_excep_buffer,size,&g_kernel_fd->f_op)。
本发明实施例实现了内核异常栈和调试信息的自动记录,并生成文件保存到存储介质中,以便于后续查看以往的内核异常信息,实现内核异常进行定位。
可理解的是,本发明提出的记录内核异常栈及调试信息的方法还可扩展到记录内核其他想要记录的调试信息。
图2示出了本发明实施例提出的一种记录内核异常栈及调试信息的系统的结构框图。
如图2所示,本发明实施例提出的记录内核异常栈及调试信息的系统包括:变量创建模块101、文件打开模块102、标识创建模块103、信息缓存模块104和信息写入模块105,其中:
所述的变量创建模块101,用于创建两个全局变量和一个全局变量数组,其中,第一全局变量用于保存文件句柄,第二全局变量用于保存内核异常标识位,全局变量数组用于缓存内核异常信息;
所述的文件打开模块102,用于当内核发生异常时,在存储介质中打开用于记录内核异常栈信息的文件,并将该文件的文件句柄记录到第一全局变量中;
所述的标识设置模块103,用于设置所述内核异常标识位;
所述的信息缓存模块104,用于当调用printk函数时,若检测到所述内核异常标识位处于置位状态,则将所述当前内核异常栈信息缓存到所述全局变量数组中;
所述的信息写入模块105,用于根据所述文件句柄,将所述全局变量数组中缓存的内核异常栈信息保存到对应的用于记录内核异常栈信息的文件中。
本发明实施例中,所述记录内核异常栈及调试信息的系统还包括打印模块:
所述的打印模块,用于当调用printk函数时,若检测到所述内核异常标识位处于非置位状态,则将当前需要打印的内容打印到串口或显示器。
本发明实施例中,所述记录内核异常栈及调试信息的系统还包括时间获取模块:
所述的时间获取模块,用于在存储介质中打开用于记录内核异常栈信息的文件之后,获取当前系统时间,将所述当前系统时间作为内核异常发生时间记录在所述文件中。
进一步地,所述文件打开模块,具体用于当内核发生异常时,触发内核异常处理函数,在内核异常处理函数中打开用于记录内核异常栈信息的文件,该文件所在路径为存储介质;
其中,所述内核异常处理函数为oops内核异常处理函数。所述oops内核异常处理函数具体通过调用文件打开函数filp_open()在存储介质中打开用于记录内核异常栈信息的文件,并生成文件句柄;
保存返回的文件句柄,以便于后期查找所述用于记录内核异常栈信息的文件。
对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
综上,本发明提供的记录内核异常栈及调试信息的方法及系统,通过内核出现问题时触发的内核异常处理函数中增加操作,获取内核异常及调试信息并生成文件保存到存储介质中,便于后续导出并交给相关研发技术人员定位问题。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。
本领域技术人员可以理解实施例中的系统中的模块可以按照实施例描述进行分布于实施例的系统中,也可以进行相应变化位于不同于本实施例的一个或多个系统中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种记录内核异常栈及调试信息的方法,其特征在于,所述方法包括:
创建两个全局变量和一个全局变量数组,其中,第一全局变量用于保存文件句柄,第二全局变量用于保存内核异常标识位,全局变量数组用于缓存内核异常栈信息;
当内核发生异常时,在存储介质中打开用于记录内核异常栈信息的文件,并将该文件的文件句柄记录到第一全局变量中;
设置所述内核异常标识位;
当调用printk函数时,若检测到所述内核异常标识位处于置位状态,则将当前内核异常栈信息缓存到所述全局变量数组中;
根据所述文件句柄,将所述全局变量数组中缓存的内核异常栈信息保存到对应的用于记录内核异常栈信息的文件中。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当调用printk函数时,若检测到所述内核异常标识位处于非置位状态,则将当前需要打印的内容打印到串口或显示器。
3.根据权利要求1所述的方法,其特征在于,所述在存储介质中打开用于记录内核异常栈信息的文件之后,还包括:
获取当前系统时间,将所述当前系统时间作为内核异常发生时间记录在所述文件中。
4.根据权利要求1-3任一项所述的方法,其特征在于,所述当内核发生异常时,在存储介质中打开用于记录内核异常栈信息的文件,具体包括:
当内核发生异常时,触发内核异常处理函数,在内核异常处理函数中打开用于记录内核异常栈信息的文件,该文件所在路径为存储介质;
其中,所述内核异常处理函数为oops内核异常处理函数。
5.根据权利要求4所述的方法,其特征在于,所述oops内核异常处理函数通过调用文件打开函数在存储介质中打开用于记录内核异常栈信息的文件,并生成文件句柄;
保存返回的文件句柄。
6.一种记录内核异常栈及调试信息的系统,其特征在于,所述系统包括:
变量创建模块,用于创建两个全局变量和一个全局变量数组,其中,第一全局变量用于保存文件句柄,第二全局变量用于保存内核异常标识位,全局变量数组用于缓存内核异常栈信息;
文件打开模块,用于当内核发生异常时,在存储介质中打开用于记录内核异常栈信息的文件,并将该文件的文件句柄记录到第一全局变量中;
标识设置模块,用于设置所述内核异常标识位;
信息缓存模块,用于当调用printk函数时,若检测到所述内核异常标识位处于置位状态,则将当前内核异常栈信息缓存到所述全局变量数组中;
信息写入模块,用于根据所述文件句柄,将所述全局变量数组中缓存的内核异常栈信息保存到对应的用于记录内核异常栈信息的文件中。
7.根据权利要求6所述的系统,其特征在于,所述系统还包括:
打印模块,用于当调用printk函数时,若检测到所述内核异常标识位处于非置位状态,则将当前需要打印的内容打印到串口或显示器。
8.根据权利要求6所述的系统,其特征在于,所述系统还包括:
时间获取模块,用于在存储介质中打开用于记录内核异常栈信息的文件之后,获取当前系统时间,将所述当前系统时间作为内核异常发生时间记录在所述文件中。
9.根据权利要求6所述的系统,其特征在于,所述文件打开模块,具体用于当内核发生异常时,触发内核异常处理函数,在内核异常处理函数中打开用于记录内核异常栈信息的文件,该文件所在路径为存储介质;
其中,所述内核异常处理函数为oops内核异常处理函数。
10.根据权利要求9所述的系统,其特征在于,所述文件打开模块,具体通过利用所述oops内核异常处理函数调用文件打开函数在存储介质中打开用于记录内核异常栈信息的文件,并生成文件句柄。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510555761.8A CN105159819B (zh) | 2015-09-01 | 2015-09-01 | 一种记录内核异常栈及调试信息的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510555761.8A CN105159819B (zh) | 2015-09-01 | 2015-09-01 | 一种记录内核异常栈及调试信息的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105159819A CN105159819A (zh) | 2015-12-16 |
CN105159819B true CN105159819B (zh) | 2018-03-13 |
Family
ID=54800681
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510555761.8A Active CN105159819B (zh) | 2015-09-01 | 2015-09-01 | 一种记录内核异常栈及调试信息的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105159819B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105589766B (zh) * | 2015-12-21 | 2018-07-13 | 南京国电南自电网自动化有限公司 | 一种VxWorks启动过程任务异常检测方法 |
CN108255692B (zh) * | 2016-12-28 | 2021-02-26 | 新华三技术有限公司 | 信息处理方法及装置 |
CN109426606A (zh) * | 2017-08-23 | 2019-03-05 | 东软集团股份有限公司 | 内核故障诊断信息处理方法、装置、存储介质及电子设备 |
CN109144873B (zh) * | 2018-08-22 | 2022-05-06 | 郑州云海信息技术有限公司 | 一种linux内核处理方法及装置 |
CN110413432B (zh) * | 2019-07-02 | 2023-09-01 | Oppo广东移动通信有限公司 | 一种信息处理方法、电子设备及存储介质 |
CN114168203B (zh) * | 2020-09-10 | 2024-02-13 | 成都鼎桥通信技术有限公司 | 双系统运行状态控制方法、装置和电子设备 |
CN117234953B (zh) * | 2023-11-14 | 2024-01-26 | 北京麟卓信息科技有限公司 | 一种基于影子代码缓存的内核调试方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1963773A (zh) * | 2005-11-10 | 2007-05-16 | 国际商业机器公司 | 在系统崩溃时提取日志和追踪缓冲器的方法和系统 |
CN102301344A (zh) * | 2011-07-06 | 2011-12-28 | 华为技术有限公司 | 一种操作系统内核调试方法和虚拟调试服务模块 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1467282B1 (en) * | 2003-04-09 | 2008-10-01 | Jaluna SA | Operating systems |
-
2015
- 2015-09-01 CN CN201510555761.8A patent/CN105159819B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1963773A (zh) * | 2005-11-10 | 2007-05-16 | 国际商业机器公司 | 在系统崩溃时提取日志和追踪缓冲器的方法和系统 |
CN102301344A (zh) * | 2011-07-06 | 2011-12-28 | 华为技术有限公司 | 一种操作系统内核调试方法和虚拟调试服务模块 |
Also Published As
Publication number | Publication date |
---|---|
CN105159819A (zh) | 2015-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105159819B (zh) | 一种记录内核异常栈及调试信息的方法及系统 | |
CN104572446B (zh) | 一种自动化测试方法及系统 | |
CN102750317B (zh) | 数据持久化处理方法、装置及数据库系统 | |
CN103902404B (zh) | 一种媒体文件备份的方法、装置及用户设备 | |
CN104899111A (zh) | 一种处理家庭网关系统内核崩溃的方法及系统 | |
WO2019085466A1 (zh) | 关联测试方法、系统、应用服务器及计算机可读存储介质 | |
CN106682162A (zh) | 日志管理方法及装置 | |
CN106557300A (zh) | 一种野指针的函数栈信息确定方法、装置及电子设备 | |
CN109710439A (zh) | 故障处理方法和装置 | |
CN107704604A (zh) | 一种消息持久化方法、服务器和计算机可读存储介质 | |
CN107391544A (zh) | 列式存储数据的处理方法、装置、设备及计算机储存介质 | |
CN107239325A (zh) | 单证数据处理方法和装置 | |
CN107729172A (zh) | 一种生成分级调试日志的方法 | |
CN103455436B (zh) | 一种ram检测方法及系统 | |
CN107291486A (zh) | 一种操作系统的安装方法和装置 | |
CN107368545A (zh) | 一种基于MerkleTree变形算法的去重方法及装置 | |
US8161023B2 (en) | Inserting a PDF shared resource back into a PDF statement | |
CN103714179A (zh) | 一种系统日志的多语言支持方法和系统 | |
CN100487669C (zh) | 内存重复释放的定位方法和系统 | |
CN110851332B (zh) | 一种日志文件的处理方法、装置、设备和介质 | |
CN105468527B (zh) | 一种应用中组件的测试方法及装置 | |
CN112083952A (zh) | 一种基于spring架构的异常处理方法及系统 | |
CN108509252A (zh) | 虚拟机启动装置、方法及主机 | |
JP2007249490A (ja) | 障害ログ自動選択収集方法および装置 | |
CN102855922A (zh) | 一种在Flash中记录死机信息的方法 |
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 | ||
PP01 | Preservation of patent right |
Effective date of registration: 20180528 Granted publication date: 20180313 |
|
PP01 | Preservation of patent right |