异常处理方法及装置与流程

文档序号:13512867阅读:132来源:国知局
异常处理方法及装置与流程

本发明涉及通信领域,具体而言,涉及一种异常处理方法及装置。



背景技术:

在嵌入式系统领域中,异常处理是重要的支撑模块。由于嵌入式设备对性能和故障恢复的及时性有非常高的要求,所以异常处理必须迅速准确,这样才能及时恢复设备的正常状态。

在操作系统的异常处理中,有一个重要部分是保存异常现场的信息,特别是进程或者线程的上下文信息。在定位异常时,有时需要更多的异常相关的内存信息,但是在单板或者处理单元由于异常重启的情况下,就无法获取所需的其他内存信息。

操作系统一般都会提供异常时内存转存的功能,常见的是linux的coredump,能够将发生异常的进程内所有内存信息保存到指定的非易失性存储器中。这样,即使单板或者处理单元由于异常重启后,也能够根据内存转存的信息对异常进行分析定位。一次完整的异常时内存转存信息,容量可达几十兆到几百兆字节(1兆字节等于10242字节),甚至高达上千兆字节。

由于嵌入式设备中,大部分的单板或者处理单元上都没有大容量的非易失性存储器;或者,即使有大容量的非易失性存储器,完整的异常时内存转存也会耗费比较长的时间,影响异常处理的及时性。所以,完整的异常时内存转存对于嵌入式系统的异常处理并不完全合适。

因此,相关技术中,系统异常时内存转存的方式存在内存转存信息需要大容量的非易失性存储器的问题。



技术实现要素:

本发明实施例提供了一种异常处理方法及装置,以至少解决相关技术中系统异常时内存转存的方式存在内存转存信息需要大容量的非易失性存储器的问题。

根据本发明的一个实施例,提供了一种异常处理方法,包括:根据系统的异常的异常上下文信息,确定所述系统的内存中需要转存的内存地址范围;读取确定的所述内存地址范围对应的内存数据;将读取的所述内存数据发送到一个或多个非易失性存储器,和/或将读取的所述内存数据保存到所述异常所处的单板或处理单元的保留内存中。

可选地,根据所述系统的所述异常的所述异常上下文信息,确定所述系统的所述内存需要转存的所述内存地址范围包括:判断所述异常上下文信息指向的内存地址是否有效;在判断结果为是的情况下,确定需要转存的所述内存地址范围为:从所述异常上下文信息指向的内存地址前第一预定距离的内存地址至所述异常上下文信息指向的内存地址后第二预定距离的内存地址的内存地址范围。

可选地,根据所述系统的所述异常的所述异常上下文信息,确定所述系统的所述内存需要转存的所述内存地址范围包括:在所述异常上下文信息为多个的情况下,分别确定各个异常上下文信息对应的需要转存的内存地址范围;在确定的各异常上下文信息对应的需要转存的内存地址范围重叠的情况下,合并重叠的内存地址范围;确定合并后的内存地址范围为需要转存的所述内存地址范围。

可选地,在根据所述系统的所述异常的所述异常上下文信息,确定所述系统的所述内存需要转存的所述内存地址范围之前,还包括:在所述异常上下文信息为栈内存信息的情况下,确定所述异常上下文信息包括:所述栈内存信息的栈顶指针对应位置前第三预定距离的内存地址至所述栈顶指针对应位置后第四预定距离的内存地址中存储的信息。

可选地,在将读取的所述内存数据保存到所述异常所处的单板或处理单元的保留内存中的情况下,在将读取的所述内存数据保存到所述异常所处的单板或处理单元的保留内存中之后,还包括:在所述异常恢复,或者所述异常所处单板或处理单元重启后,将所述保留内存中保存的所述内存数据,发送到一个或多个所述非易失性存储器。

根据本发明的另一个实施例,提供了一种异常处理装置,包括:第一确定模块,用于根据系统的异常的异常上下文信息,确定所述系统的内存中需要转存的内存地址范围;读取模块,用于读取确定的所述内存地址范围对应的内存数据;第一发送模块,用于将读取的所述内存数据发送到一个或多个非易失性存储器,和/或,保存模块,用于将读取的所述内存数据保存到所述异常所处的单板或处理单元的保留内存中。

可选地,所述第一确定模块包括:判断单元,用于判断所述异常上下文信息指向的内存地址是否有效;第一确定单元,用于在判断结果为是的情况下,确定需要转存的所述内存地址范围为:从所述异常上下文信息指向的内存地址前第一预定距离的内存地址至所述异常上下文信息指向的内存地址后第二预定距离的内存地址的内存地址范围。

可选地,所述第一确定模块包括:第二确定单元,用于在所述异常上下文信息为多个的情况下,分别确定各个异常上下文信息对应的需要转存的内存地址范围;合并单元,用于在确定的各异常上下文信息对应的需要转存的内存地址范围重叠的情况下,合并重叠的内存地址范围;第三确定单元,用于确定合并后的内存地址范围为需要转存的所述内存地址范围。

可选地,所述装置还包括:第二确定模块,用于在所述异常上下文信息为栈内存信息的情况下,确定所述异常上下文信息包括:所述栈内存信息的栈顶指针对应位置前第三预定距离的内存地址至所述栈顶指针对应位置后第四预定距离的内存地址中存储的信息。

可选地,所述装置还包括:第二发送模块,用于在将读取的所述内存数据保存到所述异常所处的单板或处理单元的保留内存中的情况下,在所述异常恢复,或者所述异常所处单板或处理单元重启后,将所述保留内存中保存的所述内存数据,发送到一个或多个所述非易失性存储器。

根据本发明的又一个实施例,还提供了一种存储介质。该存储介质设置为存储用于执行以下步骤的程序代码:根据系统的异常的异常上下文信息,确定所述系统的内存中需要转存的内存地址范围;读取确定的所述内存地址范围对应的内存数据;将读取的所述内存数据发送到一个或多个非易失性存储器,和/或将读取的所述内存数据保存到所述异常所处的单板或处理单元的保留内存中。

可选地,存储介质还设置为存储用于执行以下步骤的程序代码:根据所述系统的所述异常的所述异常上下文信息,确定所述系统的所述内存需要转存的所述内存地址范围包括:判断所述异常上下文信息指向的内存地址是否有效;在判断结果为是的情况下,确定需要转存的所述内存地址范围为:从所述异常上下文信息指向的内存地址前第一预定距离的内存地址至所述异常上下文信息指向的内存地址后第二预定距离的内存地址的内存地址范围。

可选地,存储介质还设置为存储用于执行以下步骤的程序代码:根据所述系统的所述异常的所述异常上下文信息,确定所述系统的所述内存需要转存的所述内存地址范围包括:在所述异常上下文信息为多个的情况下,分别确定各个异常上下文信息对应的需要转存的内存地址范围;在确定的各异常上下文信息对应的需要转存的内存地址范围重叠的情况下,合并重叠的内存地址范围;确定合并后的内存地址范围为需要转存的所述内存地址范围。

可选地,存储介质还设置为存储用于执行以下步骤的程序代码:在根据所述系统的所述异常的所述异常上下文信息,确定所述系统的所述内存需要转存的所述内存地址范围之前,还包括:在所述异常上下文信息为栈内存信息的情况下,确定所述异常上下文信息包括:所述栈内存信息的栈顶指针对应位置前第三预定距离的内存地址至所述栈顶指针对应位置后第四预定距离的内存地址中存储的信息。

可选地,存储介质还设置为存储用于执行以下步骤的程序代码:在将读取的所述内存数据保存到所述异常所处的单板或处理单元的保留内存中的情况下,在将读取的所述内存数据保存到所述异常所处的单板或处理单元的保留内存中之后,还包括:在所述异常恢复,或者所述异常所处单板或处理单元重启后,将所述保留内存中保存的所述内存数据,发送到一个或多个所述非易失性存储器。

通过本发明,在系统异常时,根据异常的异常上下文信息,确定需要转存的内存地址范围,读取确定的内存地址范围对应的内存数据(也就是需要转存的内存数据),将读取的内存数据发送到非易失性存储器,和/或保存到单板或者处理单元你的保留内存,由于发送或者保存的为由异常上下上下文信息确定的内存地址范围中的内存数据,相对于完整的内存转存大大降低了对非易失性存储器容量的需求,因此,可以解决相关技术中,系统异常时内存转存的方式存在内存转存信息需要大容量的非易失性存储器的问题,达到提高异常时内存转存的效率的效果。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是本发明实施例的一种异常处理方法的嵌入式设备的硬件结构框图;

图2是根据本发明实施例的异常处理方法的流程图;

图3是根据本发明优选实施例的异常处理方法的流程图一;

图4是根据本发明优选实施例的异常处理方法的流程图二;

图5是根据本发明实施例的异常处理装置的结构框图一;

图6是根据本发明实施例的异常处理装置的第一确定模块52的结构框图一;

图7是根据本发明实施例的异常处理装置的第一确定模块52的结构框图二;

图8是根据本发明实施例的异常处理装置的结构框图二;

图9是根据本发明实施例的异常处理装置的结构框图三。

具体实施方式

下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。

实施例1

本申请实施例1所提供的方法实施例可以在嵌入式设备或者类似的运算装置中执行。以运行在嵌入式设备上为例,图1是本发明实施例的一种异常处理方法的嵌入式设备的硬件结构框图。如图1所示,嵌入式设备10可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,嵌入式设备10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。

存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的异常处理方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至嵌入式设备10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括嵌入式设备10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(networkinterfacecontroller,nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

在本实施例中提供了一种运行于上述嵌入式设备的异常处理方法,图2是根据本发明实施例的异常处理方法的流程图,如图2所示,该流程包括如下步骤:

步骤s202,根据系统的异常的异常上下文信息,确定系统的内存中需要转存的内存地址范围;

步骤s204,读取确定的内存地址范围对应的内存数据;

步骤s206,将读取的内存数据发送到一个或多个非易失性存储器,和/或将读取的内存数据保存到异常所处的单板或处理单元的保留内存中。

通过上述步骤,在系统异常时,根据异常的异常上下文信息,确定需要转存的内存地址范围,读取确定的内存地址范围对应的内存数据,将读取的内存数据发送到非易失性存储器,和/或保存到单板或者处理单元你的保留内存,解决了相关技术中系统异常时内存转存的方式存在内存转存信息需要大容量的非易失性存储器的问题,提高了异常时内存转存的效率。

可选地,可以采用多种方式确定系统的内存中需要转存的内存地址范围,例如,可以首先判断异常上下文信息指向的内存地址是否有效,在异常上下文信息指向的内存地址有效时,确定需要转存的内存地址范围为:从异常上下文信息指向的内存地址前第一预定距离的内存地址至异常上下文信息指向的内存地址后第二预定距离的内存地址的内存地址范围,第一预定距离与第二预定距离可以相同,也可以不同,具体的大小可以根据需要进行设定。通过在异常上下文信息指向的内存地址有效的情况下,确定需要转存的内存地址范围为异常上下文信息指向的内存地址前后预定距离的内存地址范围,可以提高获取的内存数据与异常的相关性。

又例如,还可以采用如下方式确定系统的内存中需要转存的内存地址范围:可以在异常上下文信息为多个的情况下,分别确定各个异常上下文信息对应的需要转存的内存地址范围,在确定的各异常上下文信息对应的需要转存的内存地址范围重叠的情况下,合并重叠的内存地址范围,确定合并后的内存地址范围为需要转存的内存地址范围。通过在异常上下文信息为多个的情况下,合并根据各异常上下文信息确定的内存地址范围的重叠部分,可以避免重复获取相同内存地址中的内存数据,减少获取的内存数据量,提高异常时内存转存的效率。

可选地,在步骤s202之前,在异常上下文信息为栈内存信息的情况下,还可以通过如下方式确定异常上下文信息:将栈内存信息的栈顶指针对应位置前第三预定距离的内存地址至栈顶指针对应位置后第四预定距离的内存地址中存储的信息,确定为上述异常上下文信息。第三预定距离和第四预定距离可以相同,也可以不同,距离的大小可以根据需要进行设定。

通过本发明实施例的上述技术方案,在异常上下文信息为栈内存信息的情况下,确定异常上下文信息还将栈顶指针前后预定距离的内存地址中存储的信息,可以提高获取的异常相关信息的准确性。

可选地,在步骤s206之后,还可以在将读取的内存数据保存到异常所处的单板或处理单元的保留内存中之后,在异常恢复,或者异常所处单板或处理单元重启后,将保留内存中保存的上述内存数据,发送到一个或多个所述非易失性存储器。

通过本发明实施例的上述技术方案,在异常回复,或者异常所处的单板或者处理单元重启后,将保留内存中保存的需要转存的内存数据发送给一个或多个所述非易失性存储器,便于对异常数据进行分析,避免了保留内存中保存的需要转存的内存数据的遗失。

基于上述实施例及可选实施方式,为说明方案的整个流程交互,在本优选实施例中,提供了一种异常处理方法。图3是根据本发明优选实施例的异常处理方法的流程图一,如图3所示,该流程包括以下步骤:

步骤s302,在异常发生后,根据异常上下文信息,确定需要转存的内存地址范围。

典型的异常上下文信息,主要包括cpu寄存器信息和栈内存信息,在本优选实施例中异常上下文信息以cpu寄存器信息和栈内存信息进行说明。对于栈内存信息,需要限定以当前栈顶指针前后共1k(1k=1024)字节内存;如果异常上下文信息指向的内存地址有效,则将以其为中点的前后各2k字节内存,加入到需要转存的地址范围;合并重叠的内存地址范围。

上述栈内存地址范围1k字节和需要转存的内存地址范围4k字节(前后各2k字节),是为了便于描述作为典型配置(转存的内存地址范围不超过4兆字节)进行说明的,实际应用环境下,可以根据情况进行优化配置。

具体地,根据异常上下文信息,确定需要转存的内存地址范围的方法如下:

(1)在异常上下文信息为cpu寄存器信息的情况下,遍历所有cpu寄存器,以寄存器的值作为内存地址,然后判断这个地址是否有效;如果有效,则将此地址前后2k字节加入需要转存的内存地址范围。在遍历寄存器过程中,可以合并重叠的地址范围。

(2)在异常上下文信息为栈内存信息的情况下,遍历当前栈顶指针前后共1k字节内存,以各内存值作为地址,然后判断这个地址是否有效;如果有效,则将此地址前后2k字节添加到需要转存的内存地址范围。在遍历栈内存过程中,同样可以合并重叠的地址范围。

步骤s304,依次读取内存内容,将读取的内存内容即时发送到拥有非易失性存储器的单板或者处理单元。

在确定需要转存的内存地址范围之后,依次读取内存内容,并即时发送到拥有非易失性存储器的单板或者处理单元。而在目标单板或者处理单元上,将内存内容保存到非易失性存储器中,例如硬盘和存储卡等。

当拥有非易失性存储器的单板或者处理单元收到需要转存的内存数据后,可以选择保存到非易失性存储器的方式,例如,以文本方式将其保存到非易失性存储器,或者以二进制方式保存。前者便于分析,后者需要的存储空间较小,实际应用环境下,可以根据情况选择保存方式。选择的时机可以是在需要保存内存内容时选择,也可以预先设定。

图4是根据本发明优选实施例的异常处理方法的流程图二,如图4所示,该流程包括以下步骤:

步骤s402,在异常发生后,根据异常上下文信息,确定需要转存的内存地址范围。

步骤s402中根据异常上下文信息,确定需要转存的内存地址范围的方式与步骤s302中根据异常上下文信息,确定需要转存的内存地址范围的方式类似,这里不做赘述。

步骤s404,依次读取内存内容,将读取的内存内容保存到本单板或者处理单元的保留内存中。

如果发生异常的单板或者处理单元,支持较大容量的保留内存(即,在单板或者处理单元不断电重启的情况下内容保持不变的内存区域),那么可以在确定需要转存的内存地址范围之后,将需要转存的内存内容暂存在保留内存中,待异常恢复后再发送到拥有非易失性存储器的单板或者处理单元。这样有利于更快速地从异常恢复。

步骤s406,在异常恢复,或者单板(处理单元)重启之后,从保留内存中读取内存内容,将读取的内存内容发送到拥有非易失性存储器的单板或者处理单元。

在异常恢复,或者单板(处理单元)重启之后,从保留内存中读取内存内容,将读取的内存内容发送到拥有非易失性存储器的单板或者处理单元。在目标单板或者处理单元上,将内存内容保存到非易失性存储器中,例如硬盘和存储卡。

当拥有非易失性存储器的单板或者处理单元收到需要转存的内存数据后,可以选择保存到非易失性存储器的方式,例如,以文本方式将其保存到非易失性存储器,或者以二进制方式保存。前者便于分析,后者需要的存储空间较小,实际应用环境下,可以根据情况选择保存方式。选择的时机可以是在需要保存内存内容时选择,也可以预先设定。

在实际的工程应用环境中,嵌入式系统异常处理在保存异常现场信息时,仅保存异常栈信息和明确相关的内存信息,或者,在合适的场景下做完整的内存转存的方式,均不能满足实际需求,前者需要明确异常相关的内存信息,这在工业应用环境下很难做到,而后者需要大容量的非易失性存储器。通过本发明的上述技术方案,在满足内存转存需求的同时,不需要明确异常相关的内存信息,需要的存储器容量比完整的内存转存方式需要的存储器容量要小。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

实施例2

在本实施例中还提供了一种异常处理装置,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。

图5是根据本发明实施例的异常处理装置的结构框图一,如图5所示,该装置包括:第一确定模块52、读取模块54、第一发送模块56和/或保存模块58。下面对该装置进行说明。

第一确定模块52,用于根据系统的异常的异常上下文信息,确定系统的内存中需要转存的内存地址范围;读取模块54,与上述第一确定模块52相连,用于读取确定的内存地址范围对应的内存数据;第一发送模块56,与上述读取模块54相连,用于将读取的内存数据发送到一个或多个非易失性存储器,保存模块58,与上述读取模块54相连,用于将读取的内存数据保存到异常所处的单板或处理单元的保留内存中。

图6是根据本发明实施例的异常处理装置的第一确定模块52的结构框图一,如图6所示,该第一确定模块52包括:判断单元62、第一确定单元64。下面对该第一确定模块52进行说明。

判断单元62,用于判断异常上下文信息指向的内存地址是否有效;第一确定单元64,与上述判断单元62相连,用于在判断结果为是的情况下,确定需要转存的内存地址范围为:从异常上下文信息指向的内存地址前第一预定距离的内存地址至异常上下文信息指向的内存地址后第二预定距离的内存地址的内存地址范围。

图7是根据本发明实施例的异常处理装置的第一确定模块52的结构框图二,如图7所示,该第一确定模块52包括:第二确定单元72、合并单元74、第三确定单元76。下面对该第一确定模块52进行说明。

第二确定单元72,用于在异常上下文信息为多个的情况下,分别确定各个异常上下文信息对应的需要转存的内存地址范围;合并单元74,与上述第二确定单元72相连,用于在确定的各异常上下文信息对应的需要转存的内存地址范围重叠的情况下,合并重叠的内存地址范围;第三确定单元76,与上述合并单元74相连,用于确定合并后的内存地址范围为需要转存的内存地址范围。

图8是根据本发明实施例的异常处理装置的结构框图二,如图8所示,该装置除包括图5所示的所有模块外,还包括:

第二确定模块82,用于在异常上下文信息为栈内存信息的情况下,确定异常上下文信息包括:栈内存信息的栈顶指针对应位置前第三预定距离的内存地址至栈顶指针对应位置后第四预定距离的内存地址中存储的信息。

图9是根据本发明实施例的异常处理装置的结构框图三,如图9所示,该装置除包括图5所示的所有模块外,还包括:

第二发送模块92,用于在将读取的内存数据保存到异常所处的单板或处理单元的保留内存中的情况下,在异常恢复,或者异常所处单板或处理单元重启后,将保留内存中保存的内存数据,发送到一个或多个非易失性存储器。

可选地,本优选实施例的第一发送模块56与第二发送模块92可以相同,也可以不同。

可选地,本优选实施例的异常处理装置可以位于嵌入式设备的内部的某一单板或者处理单元中。

需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。

实施例3

本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的程序代码:

s1,根据系统的异常的异常上下文信息,确定系统的内存中需要转存的内存地址范围;

s2,读取确定的内存地址范围对应的内存数据;

s3,将读取的内存数据发送到一个或多个非易失性存储器,和/或将读取的内存数据保存到异常所处的单板或处理单元的保留内存中。

可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:

根据系统的异常的异常上下文信息,确定系统的内存需要转存的内存地址范围包括:

s1,判断异常上下文信息指向的内存地址是否有效;

s2,在判断结果为是的情况下,确定需要转存的内存地址范围为:从异常上下文信息指向的内存地址前第一预定距离的内存地址至异常上下文信息指向的内存地址后第二预定距离的内存地址的内存地址范围。

可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:

根据系统的异常的异常上下文信息,确定系统的内存需要转存的内存地址范围包括:

s1,在异常上下文信息为多个的情况下,分别确定各个异常上下文信息对应的需要转存的内存地址范围;

s2,在确定的各异常上下文信息对应的需要转存的内存地址范围重叠的情况下,合并重叠的内存地址范围;

s3,确定合并后的内存地址范围为需要转存的内存地址范围。

可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:

在根据系统的异常的异常上下文信息,确定系统的内存需要转存的内存地址范围之前,还包括:

在异常上下文信息为栈内存信息的情况下,确定异常上下文信息包括:栈内存信息的栈顶指针对应位置前第三预定距离的内存地址至栈顶指针对应位置后第四预定距离的内存地址中存储的信息。

可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:

在将读取的内存数据保存到异常所处的单板或处理单元的保留内存中的情况下,在将读取的内存数据保存到异常所处的单板或处理单元的保留内存中之后,还包括:

在异常恢复,或者异常所处单板或处理单元重启后,将保留内存中保存的内存数据,发送到一个或多个非易失性存储器。

可选地,在本实施例中,上述存储介质可以包括但不限于:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行:根据系统的异常的异常上下文信息,确定系统的内存中需要转存的内存地址范围;读取确定的内存地址范围对应的内存数据;将读取的内存数据发送到一个或多个非易失性存储器,和/或将读取的内存数据保存到异常所处的单板或处理单元的保留内存中。

可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行:根据系统的异常的异常上下文信息,确定系统的内存需要转存的内存地址范围包括:判断异常上下文信息指向的内存地址是否有效;在判断结果为是的情况下,确定需要转存的内存地址范围为:从异常上下文信息指向的内存地址前第一预定距离的内存地址至异常上下文信息指向的内存地址后第二预定距离的内存地址的内存地址范围。

可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行:根据系统的异常的异常上下文信息,确定系统的内存需要转存的内存地址范围包括:在异常上下文信息为多个的情况下,分别确定各个异常上下文信息对应的需要转存的内存地址范围;在确定的各异常上下文信息对应的需要转存的内存地址范围重叠的情况下,合并重叠的内存地址范围;确定合并后的内存地址范围为需要转存的内存地址范围。

可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行:在根据系统的异常的异常上下文信息,确定系统的内存需要转存的内存地址范围之前,还包括:在异常上下文信息为栈内存信息的情况下,确定异常上下文信息包括:栈内存信息的栈顶指针对应位置前第三预定距离的内存地址至栈顶指针对应位置后第四预定距离的内存地址中存储的信息。

可选地,在本实施例中,处理器根据存储介质中已存储的程序代码执行:在将读取的内存数据保存到异常所处的单板或处理单元的保留内存中的情况下,在将读取的内存数据保存到异常所处的单板或处理单元的保留内存中之后,还包括:在异常恢复,或者异常所处单板或处理单元重启后,将保留内存中保存的内存数据,发送到一个或多个非易失性存储器

可选地,本实施例中的具体示例可以参考上述实施例及可选实施方式中所描述的示例,本实施例在此不再赘述。

显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1