处理器溢出监控和调试方法及装置与流程

文档序号:12469804阅读:212来源:国知局
处理器溢出监控和调试方法及装置与流程

本申请涉及计算机技术领域,尤其涉及处理器溢出监控和调试方法及装置。



背景技术:

通常,产品出厂前可能会出现一些问题,这些问题不容易被发现且可能从生产之初就存在。例如,当指纹功能在内存释放检测时边界检测写错,则可能会出现指纹功能不能用的情况。系统遇到这样的错误时,相应的处理结果是指纹功能退出,系统初始化继续执行,所以表现上是没有指纹功能。实际上,系统内存在很多这样的异常处理器溢出,不仅影响系统的稳定性,同时很难被发现。



技术实现要素:

为克服相关技术中存在的问题,本公开提供了处理器溢出监控和调试方法及装置。

根据本公开实施例的第一方面,提供一种处理器溢出监控和调试方法,所述方法包括:

获取处理器在运行过程中所述处理器的溢出状态;

在根据所述溢出状态确定处理器溢出时,中断所述处理器当前执行指令,跳转执行预设调试处理流程。

可选的,所述获取处理器在运行过程中所述处理器的溢出状态,包括:

从处理器的状态寄存器中获取溢出标志,所述溢出标志是标识处理器是否溢出的标志。

可选的,所述跳转执行预设调试处理流程之前,还包括:

以发生处理器溢出时所执行指令为起点,确定所执行指令之后的预设条待执行指令满足预设过滤条件,所述预设过滤条件是预先设定的用于初步判断处理器溢出是否为异常处理器溢出的条件。

可选的,所述预设过滤条件至少包括下述一种条件:

待执行指令中包括跳转指令;

待执行指令中包括比较指令。

可选的,所述预设调试处理流程,包括:

授予用户修改处理器内指令的权限,以便用户修改处理器中的指令信息;

或,获取并输出发生处理器溢出时所执行指令的代码信息、与所执行指令相邻的指令的代码信息和/或处理器的状态信息;

或,根据预设溢出处理策略修改处理器溢出时的运算结果,所述预设溢出处理策略是处理器在溢出时对运算结果进行修正处理的策略。

根据本公开实施例的第二方面,提供一种处理器溢出监控和调试装置,所述装置包括:

状态获取模块,被配置为获取处理器在运行过程中所述处理器的溢出状态;

调试处理模块,被配置为在根据所述溢出状态确定处理器溢出时,中断所述处理器当前执行指令,跳转执行预设调试处理流程。

可选的,所述状态获取模块包括:

状态获取子模块,被配置为从处理器的状态寄存器中获取溢出标志,所述溢出标志是标识处理器是否溢出的标志。

可选的,所述调试处理模块,具体被配置为:

在根据所述溢出状态确定处理器溢出时,中断所述处理器当前执行指令,以发生处理器溢出时所执行指令为起点,确定所执行指令之后的预设条待执行指令满足预设过滤条件,跳转执行预设调试处理流程,所述预设过滤条件是预先设定的用于初步判断处理器溢出是否为异常处理器溢出的条件。

可选的,所述预设过滤条件至少包括下述一种条件:

待执行指令中包括跳转指令;

待执行指令中包括比较指令。

可选的,所述预设调试处理流程,包括:

授予用户修改处理器内指令的权限,以便用户修改处理器中的指令信息;

或,获取并输出发生处理器溢出时所执行指令的代码信息、与所执行指令相邻的指令的代码信息和/或处理器的状态信息;

或,根据预设溢出处理策略修改处理器溢出时的运算结果,所述预设溢出处理策略是处理器在溢出时对运算结果进行修正处理的策略。

根据本公开实施例的第三方面,提供一种处理器溢出监控和调试装置,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为:

获取处理器在运行过程中所述处理器的溢出状态;

在根据所述溢出状态确定处理器溢出时,中断所述处理器当前执行指令,跳转执行预设调试处理流程。

本公开的实施例提供的技术方案可以包括以下有益效果:

本公开在检测到处理器溢出时,中断处理器当前执行指令,跳转执行预设调试处理流程,从而方便用户在调试处理流程中判断处理器溢出是否为异常处理器溢出,并对导致异常处理器溢出的代码进行调试,实现及时解决问题,避免本该有的功能无法使用的情况,提高系统稳定性。

本公开直接根据溢出标志判断处理器是否溢出,容易实现。

本公开确定处理器溢出后,中断处理器当前执行指令,并以发生处理器溢出时所执行指令为起点,判断该指令后的预设条待执行指令是否满足预设过滤条件,在满足时跳转执行预设调试处理流程,从而实现对处理器溢出的监控和调试,可以及时发现问题并解决问题,提高系统稳定性。

本公开可以通过判断待执行指令中是否包括跳转指令和/或比较指令,从而判断是否继续执行预设调试处理流程,容易实现。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

图1是本公开根据一示例性实施例示出的一种处理器溢出监控和调试方法的流程图。

图2是本公开根据一示例性实施例示出的另一种处理器溢出监控和调试方法的流程图。

图3是本公开根据一示例性实施例示出的一种处理器溢出监控和调试装置的框图。

图4是本公开根据一示例性实施例示出的另一种处理器溢出监控和调试装置的框图。

图5是本公开根据一示例性实施例示出的一种用于处理器溢出监控和调试装置的框图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

在本公开使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本公开。在本公开和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本公开可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本公开范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

每个处理器都有运算范围,当运算结果超出处理器的运算范围时,会出现处理器溢出。处理器溢出可能是正常指令导致的溢出,也可能异常指令导致的溢出,即可能出现正常处理器溢出和异常处理器溢出。例如,当边界检测写错时,会产生异常处理器溢出,可能使该功能无法使用,而这样的异常处理器溢出又很难被发现。

基于此,本公开提供一种处理器溢出监控和调试方法,在检测到处理器溢出时,中断处理器当前执行指令,跳转执行预设调试处理流程,从而方便用户在调试处理流程中判断处理器溢出是否为异常处理器溢出,并对导致异常处理器溢出的代码进行调试,实现及时解决问题,避免该有的功能无法使用的情况,提高系统稳定性。如图1所示,图1是本公开根据一示例性实施例示出的一种处理器溢出监控和调试方法的流程图,包括以下步骤:

在步骤101中,获取处理器在运行过程中所述处理器的溢出状态。

在步骤102中,在根据所述溢出状态确定处理器溢出时,中断所述处理器当前执行指令,跳转执行预设调试处理流程。

其中,指令已经预先编译,处理器在运行过程中可以一条条执行指令。在处理器运行过程中,可以获取处理器的溢出状态。溢出状态是用来表示处理器是否溢出的状态。

在一个例子中,可以从处理器的状态寄存器中获取溢出标志,所述溢出标志是标识处理器是否溢出的标志。例如,溢出标志可以是OF(Overflow Flag),当处理器溢出时,OF可以为1,当处理器没有溢出时,OF可以为0。

可见,在该例子中,直接根据溢出标志判断处理器是否溢出,容易实现。

在根据溢出状态确定处理器溢出时,可以中断处理器当前执行的指令,并跳转执行预设调试处理流程。

在该实施例中可以预留调试处理接口,在根据溢出状态确定处理器溢出,并中断处理器当前执行的指令后,可以通过调试处理接口执行预设调试处理流程。调试完成后,可以返回继续执行待执行的指令。

其中,由于处理器溢出可能发生在指令执行过程中,也可能发生在指令执行完成后。如果处理器溢出发生在指令执行过程中,则当前执行的指令是指正在执行的指令,如果处理器溢出发生在指令执行完成后,则当前执行的指令可以是即将要执行的指令。

预设调试处理流程是预先设置的便于用户调试处理器的流程。根据不同的应用场景可以提供不同的预设调试处理流程。可见,在本公开中,检测到处理器溢出时,可以提供一个调试机制,以便用户在调试处理流程中判断处理器溢出是否为异常处理器溢出,并对导致异常处理器溢出的代码进行调试,实现及时解决问题,避免该有的功能无法使用的情况,提高系统稳定性。

在一个例子中,可以授予用户修改处理器内指令的权限,以便用户修改处理器中的指令信息。

在该例子中,可以暂停以动态配置处理,由于授予用户修改处理器内指令的权限,则可以等待用户参与,以便用户检查处理器溢出是否为异常处理器溢出,如果是异常处理器溢出,则对处理器进行调试,否则,返回继续执行待执行指令。

例如,可以通过GDB(GNU symbolic debugger)调试工具进行调试,让程序在期望的地方暂停,此时可以查看变量、寄存器、内存及堆栈,更进一步可以修改变量及内存值等。

在一个例子中,可以获取并输出发生处理器溢出时所执行指令的代码信息、与所执行指令相邻的指令的代码信息和/或处理器的状态信息。

在该例子中,可以提取发生处理器溢出时所执行指令的代码信息,还可以提取与发生处理器溢出时所执行指令相邻的指令的代码信息,还可以提取处理器的状态信息,并将所提取信息进行输出,以便用户根据输出信息定位出导致溢出的代码,方便用户解决问题。其中,处理器的状态信息可以包括溢出状态、进位状态、正负状态等。在用户调试完成后,可以返回继续执行待执行指令。

可见,可以将导致处理器溢出的相关信息输出,以便用户根据输出信息进行溢出定位并解决问题。

在一个例子中,还可以根据预设溢出处理策略修改处理器溢出时的运算结果。

在该例子中,预设溢出处理策略可以是处理器在溢出时对运算结果进行修正处理的策略。发生溢出时,处理器会根据预设溢出处理策略将运算结果进行处理,以使运算结果在处理器的运算范围内,如此,经过处理后的运算结果为错误运算结果,基于此,在确定处理器发生溢出后,可以根据预设溢出处理策略进行反推理,将运算结果修改为正确的运算结果。

可见,本实施例可以直接对运算结果进行修正,节约修改时间。

可以理解的是,本公开仅列举出其中几种预设调试处理流程,还可以根据不同的应用场景设置其他调试处理流程,以达到调试目的,在此不再一一赘述。

在一个可选的例子中,为了避免发生任何处理器溢出都进入调试处理状态的情况,本公开还可以预置一个过滤条件,在满足预设过滤条件的情况下,才跳转执行预设调试处理流程,避免发生任何溢出都进入调试处理状态给系统带来资源浪费。

基于此,跳转执行预设调试处理流程之前,还包括:以发生处理器溢出时所执行指令为起点,确定所执行指令之后的预设条待执行指令满足预设过滤条件,所述预设过滤条件是预先设定的用于初步判断处理器溢出是否为异常处理器溢出的条件。

在该例子中,可以以发生处理器溢出时所执行指令为起点,判断发生处理器溢出时所执行指令之后的预设条待执行指令是否满足预设过滤条件,如果满足预设过滤条件,则跳转执行预设调试处理流程,如果不满足预设过滤条件,可以返回继续执行待执行指令。

其中,由于指令是预先写好的,因此发生处理器溢出时所执行指令之后的预设条待执行指令可以读取到,进而可以判断待执行指令是否满足预设过滤条件。

预设过滤条件是预先设定的用于初步判断处理器溢出是否为异常处理器溢出的条件。预设过滤条件是初步判断条件,满足预设过滤条件的处理器溢出可认为可能是异常处理器溢出。根据不同的应用场景,预设过滤条件设置不同。例如,可以通过大量的数据统计分析,在发生某种异常处理器溢出时,发生处理器溢出时所执行指令之后的待执行指令中可能存在某种共性特征,可以将该共性特征作为过滤条件。

其中,预设条可以是预先指定的条数,该条数也可以根据统计分析确定,例如,可以设置为10条。

可见,本公开通过预设过滤条件对处理器溢出进行初步过滤,在待执行指令满足预设过滤条件时才跳转执行预设调试处理流程,从而避免发生任何溢出都进入调试处理状态给系统带来资源浪费。

在一个例子中,作为其中一种应用场景,当预设过滤条件至少包括下述一种条件:

待执行指令中包括跳转指令。

待执行指令中包括比较指令。

可见,该实施例可以通过判断待执行指令中是否包括跳转指令和/或比较指令,从而判断是否继续执行预设调试处理流程,容易实现。

以上实施方式中的各种技术特征可以任意进行组合,只要特征之间的组合不存在冲突或矛盾,但是限于篇幅,未进行一一描述,因此上述实施方式中的各种技术特征的任意进行组合也属于本说明书公开的范围。

如图2所示,图2是本公开根据一示例性实施例示出的一种处理器溢出监控和调试方法的流程图,该方法包括以下步骤:

在步骤201中,从处理器的状态寄存器中获取溢出标志。

在步骤202中,在根据所述溢出标志确定处理器溢出时,中断所述处理器当前执行指令。

在步骤203中,以发生处理器溢出时所执行指令为起点,判断所述指令之后的预设条待执行指令是否满足预设过滤条件,如果待执行指令满足预设过滤条件,则进入步骤204,如果待执行指令不满足预设过滤条件,则进入步骤205。

在步骤204中,跳转执行预设调试处理流程。

在步骤205中,返回执行所述待执行指令。

由上述实施例可见,通过溢出标志确定处理器溢出后,中断处理器当前执行指令,并以发生处理器溢出时所执行指令为起点,判断该指令后的预设条待执行指令是否满足预设过滤条件,在满足时跳转执行预设调试处理流程,在不满足时返回执行待执行指令,从而实现对处理器溢出的监控和调试,可以及时发现问题并解决问题,提高系统稳定性。

与前述处理器溢出监控和调试方法的实施例相对应,本公开还提供了处理器溢出监控和调试装置及其所应用的设备的实施例。

如图3所示,图3是本公开根据一示例性实施例示出的一种处理器溢出监控和调试装置的框图,所述装置包括:状态获取模块310和调试处理模块320。

其中,状态获取模块310,被配置为获取处理器在运行过程中所述处理器的溢出状态。

调试处理模块320,被配置为在根据所述溢出状态确定处理器溢出时,中断所述处理器当前执行指令,跳转执行预设调试处理流程。

由上述实施例可见,在检测到处理器溢出时,中断处理器当前执行指令,跳转执行预设调试处理流程,从而方便用户在调试处理流程中判断处理器溢出是否为异常处理器溢出,并及时发现和解决问题,避免本该有的功能无法使用的情况,提高系统稳定性。

如图4所示,图4是本公开根据一示例性实施例示出的另一种处理器溢出监控和调试装置的框图,该实施例在前述图3所示实施例的基础上,所述状态获取模块310包括状态获取子模块311。

其中,状态获取子模块311,被配置为从处理器的状态寄存器中获取溢出标志,所述溢出标志是标识处理器是否溢出的标志。

由上述实施例可见,直接根据溢出标志判断处理器是否溢出,容易实现。

在一个可选的实现方式中,所述调试处理模块,具体被配置为:

在根据所述溢出状态确定处理器溢出时,中断所述处理器当前执行指令,以发生处理器溢出时所执行指令为起点,确定所执行指令之后的预设条待执行指令满足预设过滤条件,跳转执行预设调试处理流程,所述预设过滤条件是预先设定的用于初步判断处理器溢出是否为异常处理器溢出的条件。

由上述实施例可见,确定处理器溢出后,中断处理器当前执行指令,并以发生处理器溢出时所执行指令为起点,判断该指令后的预设条待执行指令是否满足预设过滤条件,在满足时跳转执行预设调试处理流程,从而实现对处理器溢出的监控和调试,可以及时发现问题并解决问题,提高系统稳定性。

在一个可选的实现方式中,所述预设过滤条件至少包括下述一种条件:

待执行指令中包括跳转指令。

待执行指令中包括比较指令。

由上述实施例可见,可以通过判断待执行指令中是否包括跳转指令和/或比较指令,从而判断是否继续执行预设调试处理流程,容易实现。

在一个可选的实现方式中,所述预设调试处理流程,包括:

授予用户修改处理器内指令的权限,以便用户修改处理器中的指令信息。

或,获取并输出发生处理器溢出时所执行指令的代码信息、与所执行指令相邻的指令的代码信息和/或处理器的状态信息。

或,根据预设溢出处理策略修改处理器溢出时的运算结果,所述预设溢出处理策略是处理器在溢出时对运算结果进行修正处理的策略。

相应的,本公开还提供一种处理器溢出监控和调试装置,所述装置包括有处理器;用于存储处理器可执行指令的存储器;其中,所述处理器被配置为:

获取处理器在运行过程中所述处理器的溢出状态。

在根据所述溢出状态确定处理器溢出时,中断所述处理器当前执行指令,跳转执行预设调试处理流程。

上述装置中各个模块的功能和作用的实现过程具体详情见上述方法中对应步骤的实现过程,在此不再赘述。

对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本公开方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。

如图5所示,图5是根据一示例性实施例示出的一种用于处理器溢出监控和调试装置500的框图。

例如,装置500可以被提供为处理设备。参照图5,装置500包括处理组件522,其进一步包括一个或多个处理器,以及由存储器532所代表的存储器资源,用于存储可由处理部件522的执行的指令,例如应用程序。存储器532中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件522被配置为执行指令,以执行上述处理器溢出监控和调试方法。

系统500还可以包括一个电源组件526被配置为执行系统500的电源管理,一个有线或无线网络接口550被配置为将系统500连接到网络,和一个输入输出(I/O)接口558。系统500可以操作基于存储在存储器532的操作系统。

其中,当所述存储器532中的指令由所述处理组件522执行时,使得系统500能够执行一种处理器溢出监控和调试方法,包括:

获取处理器在运行过程中所述处理器的溢出状态。

在根据所述溢出状态确定处理器溢出时,中断所述处理器当前执行指令,跳转执行预设调试处理流程。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本公开旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

以上所述仅为本公开的较佳实施例而已,并不用以限制本公开,凡在本公开的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本公开保护的范围之内。

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