本发明涉及计算机技术领域,特别是涉及一种应用程序死循环定位方法、装置、计算机设备和存储介质。
背景技术:
在计算机设备中通常安装了应用程序。应用程序在运行时可能会出现异常,例如,应用程序陷入死循环。死循环是指应用程序无法靠自身的控制终止其进程。当应用程序陷入死循环时,需要对死循环对应的故障部位进行定位,以便使应用程序能正常工作。
在传统的方式中,可以采用jtag(jointtestactiongroup,联合测试行为组织)硬件调试工具对死循环的故障部位进行定位。但是这种定位方式需要被调试的cpu(centralprocessingunit,中央处理器)芯片要具备jtag接口,若不具备jtag接口,或者即使具备但cpu的jtag接口引线未引出来,则无法对死循环的故障部位进行定位。由于这种方式对硬件依赖程度较高,定位操作受到局限,导致对故障部位定位的灵活性较差。
技术实现要素:
基于此,有必要针对上述技术问题,提供一种既能脱离对硬件调试工具的依赖又能有效提高故障部位定位灵活性的应用程序死循环定位方法、装置、计算机设备和存储介质。
一种应用程序死循环定位方法,所述方法包括:
通过进程运行应用程序,当所述应用程序出现死循环时,中断所述进程;
采集中断信息,利用所述中断信息计算被中断进程的相对地址;
生成所述应用程序的反汇编代码,所述反汇编代码中包括反汇编地址;
通过所述被中断进程的相对地址,查找所述反汇编地址中的反汇编目标地址,通过反汇编目标地址识别应用程序死循环的故障部位。
在其中一个实施例中,所述中断信息包括被中断进程的绝对断点地址和被中断进程的结构指针;所述利用所述中断信息计算被中断进程的相对地址的步骤,包括:
利用所述被中断进程的结构指针获取所述被中断进程的进程名称;
利用所述被中断进程的结构指针获取进程被加载的起始地址;
通过所述被中断进程的绝对断点地址和所述进程被加载的起始地址计算所述被中断进程的相对地址。
在其中一个实施例中,所述方法还包括:
获取所述应用程序名称;
获取所述被中断进程的进程名称;
判断所述被中断进程的进程名称是否与所述应用程序名称一致;
若是,则记录所述中断信息为有效中断信息;
否则,丢弃所述中断信息。
在其中一个实施例中,所述通过所述被中断进程的相对地址,查找所述反汇编地址中的反汇编目标地址的步骤,包括:
获取所述相对地址;
获取所述反汇编代码中的反汇编地址;
判断所述反汇编地址是否与所述相对地址一致;
若是,则记录所述反汇编地址为反汇编目标地址。
在其中一个实施例中,所述方法还包括:
获取中断服务程序,在所述中断服务程序中插入调试代码,所述调试代码包括中断信息采集代码段和中断信息输出代码段;
所述中断所述进程的步骤,包括:调用所述插入调试代码的中断服务程序,中断所述进程;
所述采集中断信息的步骤,包括:利用所述中断信息采集代码段采集中断信息;
所述利用所述中断信息计算被中断进程的相对地址的步骤,包括:通过所述中断信息输出代码段对所述中断信息进行计算得到所述被中断进程的相对地址。
一种应用程序死循环定位装置,所述装置包括:
中断模块,用于通过进程运行应用程序,当所述应用程序出现死循环时,中断所述进程;
采集模块,用于采集中断信息;
计算模块,用于利用所述中断信息计算被中断进程的相对地址;
反汇编模块,用于生成所述应用程序的反汇编代码,所述反汇编代码中包括反汇编地址;
定位模块,通过所述被中断进程的相对地址,查找所述反汇编地址中的反汇编目标地址,通过反汇编目标地址识别应用程序死循环的故障部位。
在其中一个实施例中,所述中断信息包括被中断进程的绝对断点地址和被中断进程的结构指针;所述计算模块还用于利用所述被中断进程的结构指针获取所述被中断进程的进程名称;利用所述被中断进程的结构指针获取进程被加载的起始地址;通过所述被中断进程的绝对断点地址和所述进程被加载的起始地址计算所述被中断进程的相对地址。
在其中一个实施例中,所述装置还包括:
插入模块,用于获取中断服务程序,在所述中断服务程序中插入调试代码,所述调试代码包括中断信息采集代码段和中断信息输出代码段;
所述中断模块还用于调用所述插入调试代码的中断服务程序,中断所述进程;
所述采集模块还用于利用所述中断信息采集代码段采集中断信息;通过所述中断信息输出代码段对所述中断信息进行计算得到所述被中断进程的相对地址。
一种计算机设备,包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述实施例中提供的方法步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例中提供的方法步骤。
上述应用程序死循环定位方法、装置、计算机设备和存储介质,当应用程序出现死循环时,中断运行应用程序的进程,采集中断信息,利用中断信息计算被中断进程的相对地址。通过对应用程序进行反汇编,得到反汇编地址。利用被中断进程的相对地址在反汇编地址中查找对应的反汇编目标地址,通过反汇编目标地址识别应用程序死循环的故障部位。通过对运行应用程序的进程进行中断操作以及对应用程序进行反汇编,可以利用被中断进程的相对地址和反汇编目标地址对应用程序死循环的故障部位进行定位。在这个过程中,可以脱离对硬件调试工具的依赖,有效提高了故障部位定位的灵活性。
附图说明
图1为一个实施例中应用程序死循环定位方法的流程图;
图2为一个实施例中应用程序死循环定位方法的模块图;
图3为一个实施例中计算机设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
在一个实施例中,如图1所示,提供了一种应用程序死循环定位方法,以该方法应用于计算机设备为例进行说明,具体包括:
步骤102,通过进程运行应用程序,当应用程序出现死循环时,中断进程。
步骤104,采集中断信息,利用中断信息计算被中断进程的相对地址。
步骤106,生成应用程序的反汇编代码,反汇编代码中包括反汇编地址。
步骤108,根据被中断进程的相对地址,查找反汇编地址中的反汇编目标地址,通过反汇编目标地址识别应用程序死循环的故障部位。
计算机设备可以是工业控制计算机、嵌入式设备、服务器、台式电脑、个人笔记本电脑、平板电脑或智能手机等。计算机设备可以包括输入装置,例如,键盘、鼠标和ic(integratedcircuit,集成电路)卡读卡器等。计算机设备通过进程运行应用程序。当应用程序发生死循环时,触发中断服务程序,继而中断应用程序对应的进程。中断服务程序可以通过输入装置进行人工触发。
具体地,通过输入装置进行人工触发的方法包括:人工操作计算机设备的输入装置,通过输入装置使计算机设备执行触发中断服务程序的操作,例如,插卡、按键等。计算机设备根据该操作启动相应的中断服务程序。通过该中断服务程序对运行应用程序的进程进行中断,由此实现对应用程序的中断。通过输入装置进行人工触发中断服务程序的方法,触发动作的可操作性更强,更便于计算机设备控制中断服务程序采集中断信息。
运行应用程序的进程被中断之后,计算机设备采集被中断进程的现场信息即中断信息。中断信息包括:被中断进程的绝对断点地址、被中断进程的运行模式和被中断进程的结构指针等。为了定位应用程序死循环的故障部位,计算机设备需要通过中断信息查找进程被中断的原因。因此,计算机设备利用中断信息计算被中断进程的断点信息。被中断进程的断点信息包括:被中断进程的进程名称、被中断进程的相对地址等。其中,计算机设备通过被中断进程的结构指针可以获取被中断进程的进程名称和进程被加载的起始地址,通过被中断进程的绝对断点地址和进程被加载的起始地址计算被中断进程的相对地址。
应用程序大多是利用计算机高级语言开发的,例如,c、c++、java以及python等,计算机设备通过编译工具程序生成应用程序代码的反汇编代码。由于汇编语言能够和机器语言保持一致性,通过汇编语言可以访问计算机设备的软件、硬件资源。因此,将计算机高级语言转换成汇编语言更有利于查找应用程序死循环的故障部位。计算机设备可以在应用程序出现死循环时,通过编译工具程序生成应用程序代码的反汇编代码。也可以在应用程序出现死循环之前将应用程序反汇编,生成反汇编代码。
计算机设备将应用程序反汇编后,生成大量的反汇编代码。反汇编代码中包括反汇编地址、机器码和汇编指令等。反汇编地址中包括反汇编目标地址,计算机设备可以通过反汇编目标地址识别应用程序死循环的故障部位。具体地,计算机设备获取被中断进程的相对地址,对反汇编地址进行遍历,查找与被中断进程的相对地址一致的反汇编地址,该反汇编地址即为反汇编目标地址,进而可以通过反汇编目标地址识别应用程序死循环的故障部位。
在其中一个实施例中,通过反汇编目标地址识别应用程序死循环的故障部位的步骤,包括:通过反汇编目标地址获取反汇编目标代码和反汇编目标代码的上下文代码,反汇编目标代码是指反汇编目标地址所在行的代码,识别反汇编目标代码和反汇编目标代码的上下文代码的含义,根据上述代码的含义查找应用程序的代码中出现死循环的故障部位。例如,应用程序是c语言代码,一句c语言代码转换为汇编语言后,通常对应两句或两句以上汇编代码。因此,计算机设备将应用程序的c语言代码转换成汇编代码后,需要识别反汇编目标代码和反汇编目标代码的上下文代码的含义,进而查找c语言代码中的故障语句,识别应用程序死循环的故障部位。
本实施例中,当应用程序出现死循环时,计算机设备中断运行应用程序的进程,采集中断信息,利用中断信息计算被中断进程的相对地址。通过对应用程序进行反汇编,得到反汇编地址。利用被中断进程的相对地址在反汇编地址中查找对应的反汇编目标地址,通过反汇编目标地址识别应用程序死循环的故障部位。通过对运行应用程序的进程进行中断操作以及对应用程序进行反汇编,可以利用被中断进程的相对地址和反汇编目标地址对应用程序死循环的故障部位进行定位。在这个过程中,可以脱离对硬件调试工具的依赖,有效提高了故障部位定位的灵活性。
在一个实施例中,该方法还包括:获取中断服务程序,在中断服务程序中插入调试代码,调试代码包括中断信息采集代码段和中断信息输出代码段;中断进程的步骤,包括:调用插入调试代码的中断服务程序,中断进程;采集中断信息的步骤,包括:利用中断信息采集代码段采集中断信息;利用中断信息计算被中断进程的相对地址的步骤,包括:通过中断信息输出代码段对中断信息进行计算得到被中断进程的相对地址。
本实施例中,中断服务程序中插入了调试代码,调试代码包括中断信息采集代码段和中断信息输出代码段。具体地,中断服务程序头部插入了采集代码段,中断服务程序尾部插入了输出代码段。其中,采集代码段用于采集被中断进程的现场信息,输出代码段用于利用被中断进程的现场信息计算断点信息,进而输出被中断进程的断点信息。
当应用程序出现死循环时,计算机设备通过输入装置触发中断服务程序,中断运行该应用程序的进程。通过采集代码段采集被中断进程的现场信息即中断信息,通过输出代码段利用被中断进程的现场信息计算断点信息,进而输出被中断进程的断点信息。利用中断信息计算被中断进程的相对地址,根据被中断进程的相对地址查找应用程序的反汇编目标地址,进而通过反汇编目标地址识别应用程序死循环的故障部位。
此外,在对应用程序死循环的故障部位进行定位时,也可以考虑将调试代码插入应用程序中。如果在应用程序中插入调试代码,需要在应用程序的多个代码处插入调试代码。当应用程序出现死循环时,所插入的多处调试代码会输出大量的调试信息,计算机设备难以快速有效地从大量调试信息中查找死循环故障代码,不便于定位应用程序出现死循环的故障部位。另外,由于计算机设备向应用程序中插入多处调试信息,可能会对应用程序的运行造成干扰,导致死循环故障无法复现。
本实施例中,计算机设备在中断服务程序中插入调试代码的方法,无需修改应用程序代码,即可查找应用程序出现死循环的故障部位。插入调试代码的方法简洁,且避免了对应用程序运行环境的影响,确保计算机设备可以复现应用程序的死循环故障,从而定位死循环故障部位。
在一个实施例中,中断信息包括被中断进程的绝对断点地址和被中断进程的结构指针;利用中断信息计算被中断进程的相对地址的步骤,包括:利用被中断进程的结构指针获取被中断进程的进程名称;利用被中断进程的结构指针获取进程被加载的起始地址;通过被中断进程的绝对断点地址和进程被加载的起始地址计算被中断进程的相对地址。
计算机设备采集到的中断信息包括被中断进程的结构指针,采集到的中断信息还包括被中断进程的绝对断点地址和被中断进程的运行模式。中断服务程序利用被中断进程的结构指针获取被中断进程的名称。具体地,根据被中断进程的结构指针检索被中断进程,访问被中断进程的相关属性,例如,进程名称、进程标识等,从而获取被中断进程的进程名称。
应用程序运行之前,会被操作系统加载到内存中,应用程序占用内存中的一段连续逻辑地址。这一段连续逻辑地址的起始地址即应用程序所占用内存的起始地址。应用程序被加载至内存后,操作系统调度进程来运行该应用程序。中断进程后,根据被中断进程的结构指针可以检索被中断进程,进而访问被中断进程的相关属性,根据被中断进程的相关属性可以获取进程被加载的起始地址,即应用程序所占用内存的起始地址。
中断服务程序利用被中断进程的绝对断点地址和进程被加载的起始地址计算被中断进程的相对地址。具体地,被中断进程的相对地址等于被中断进程的绝对断点地址减去进程被加载的起始地址。根据被中断进程的相对地址,计算机设备可以在应用程序的反汇编地址中查找反汇编目标地址,进而通过反汇编目标地址识别应用程序死循环的故障部位。
本实施例中,通过中断信息检索被中断进程,访问被中断进程的相关属性,获取被中断进程的进程名称、进程被加载的起始地址和被中断进程的相对地址等。计算机设备利用被中断进程的进程名称确定发生故障的应用程序,利用被中断进程的相对地址查找该应用程序反汇编目标地址,通过反汇编目标地址识别该应用程序出现死循环的故障部位。通过丰富的中断信息,可以有逐步找出应用程序出现死循环的故障部位,定位结果更准确、定位效率更高。
在一个实施例中,该方法还包括:获取应用程序的名称;获取被中断进程的进程名称;判断被中断进程的进程名称是否与应用程序名称一致,若是,则记录该中断信息为有效中断信息;否则,丢弃该中断信息。
当中断服务程序采集的中断信息不是出现死循环的应用程序的中断信息时,该中断信息是无效中断信息。例如,当计算机设备正在执行一个中断服务程序时,应用程序发生死循环。若此时通过输入装置触发与输入装置对应的中断服务程序,则与输入装置对应的中断服务程序可能没有中断应用程序的进程,而是中断了触发应用程序进程之前计算机设备正在执行的中断服务程序,中断服务程序采集到的中断信息不是应用程序的中断信息,即无效中断信息。又如,当操作系统实现任务强制切换模式时,进程中可能有多个应用程序在运行。中断服务程序中断应用程序对应的进程时,采集的被中断进程信息可能是其它应用程序的中断信息,也是无效中断信息。
为了得到有效中断信息,需要对采集的中断信息进行有效性校验。可以通过计算机设备对中断信息进行校验。具体地,通过计算机设备对中断信息进行校验的方法包括:计算机设备判断被中断进程的进程名称是否与应用程序名称一致,如果一致,则表示该中断信息为有效中断信息,记录此有效中断信息。如果不一致,则表示该中断信息是无效中断信息,将该无效中断信息丢弃,利用校验后的有效中断信息的相对地址查找应用程序死循环故障部位。也可以通过人工对中断信息进行校验。通过人工对中断信息进行校验的方法包括:通过人工判断计算机设备获取的应用程序的名称和被中断进程的进程名称是否一致,如果一致,通过输入装置向计算机设备发送记录该中断信息的操作,计算机设备根据该操作记录该中断信息为有效中断信息,如果不一致,通过输入装置向计算机设备发送丢弃该中断信息的操作,计算机设备根据该操作丢弃该中断信息。
计算机设备可以在上述计算被中断进程的相对地址之后,获取应用程序的名称和被中断进程的进程名称,根据应用程序的名称和被中断进程的进程名称校验中断信息的有效性,进而利用校验后的有效中断信息的相对地址查找应用程序死循环故障部位。计算机设备对中断信息进行校验,将有效中断信息保存,丢弃无效中断信息。通过校验中断信息,排除了中断信息中的无效中断信息,利用中断信息查找应用程序的故障部位更准确,查找效率更高。
计算机设备还可以在上述计算被中断进程的相对地址之前,按照上述方式对中断信息进行校验。校验结束,利用计算机设备记录的有效中断信息计算被中断进程的相对地址,进而利用被中断进程的相对地址查找应用程序的反汇编目标地址,通过反汇编目标地址识别应用程序出现死循环的故障部位。
在利用被中断进程的绝对断点地址和进程被加载的起始地址计算被中断进程的相对地址之前,无效中断信息被丢弃。与前面提到的计算机设备先计算相对地址再进行有效性计算相比,减少了利用无效中断信息获取进程被加载的起始地址、通过无效中断信息中的被中断进程的绝对断点地址和进程被加载的起始地址计算被中断进程的相对地址的环节。在此过程中剔除了无效中断信息,进一步降低了计算被中断进程相对地址的运算量,大大提高应用程序死循环的故障部位的定位效率。
计算机设备可以通过人工操作输入装置触发中断服务程序,采集中断信息,通过校验中断信息,从采集的中断信息中筛选有效中断信息。一般情况下,通过输入装置触发中断服务程序1~10次,即可从采集的中断信息中获取有效中断信息。通过人工操作输入装置采集中断信息的方法,输出的中断信息量可控,避免处理大量非死循环状态的无效中断信息。通过人工操作输入装置触发中断服务程序中断进程,采集中断信息,通过中断信息确定应用程序反汇编地址中的多个反汇编目标地址,利用多个反汇编目标地址识别死循环代码,避免中断信息模棱两可,准确识别应用程序的故障部位。
本实施例中,计算机设备对中断信息进行有效性校验,根据校验结果对采集到的中断信息进行筛选,选取出有效中断信息,丢弃无效中断信息。因此,滤除了无效中断信息,避免计算机设备在查找应用程序的死循环故障时,无效中断信息的干扰,提高死循环定位的准确性。
在一个实施例中,通过被中断进程的相对地址查找反汇编地址中的反汇编目标地址的步骤,包括:获取中断信息的相对地址;获取反汇编代码中的反汇编地址;判断反汇编地址是否与中断信息的相对地址一致;若是,则记录反汇编地址为反汇编目标地址。
计算机设备获取中断信息中有效中断信息的相对地址和应用程序的反汇编代码中的反汇编地址。其次,在反汇编地址中查找与有效中断信息的相对地址一致的反汇编地址,即为反汇编目标地址。具体地,计算机设备判断反汇编地址与有效中断信息的相对地址是否一致,如果一致,则记录反汇编地址为反汇编目标地址。
本实施例中,通过有效中断信息的相对地址在反汇编地址中筛选出反汇编目标地址、进而通过反汇编目标地址识别应用程序的死循环故障部位的方法,进一步缩小应用程序出现死循环的故障代码范围,减小需要检查的反汇编代码量,提高应用程序死循环的定位效率。
在一个实施例中,如图2所示,提供了一种应用程序死循环定位装置,包括:中断模块202、采集模块204、计算模块206、反汇编模块208和定位模块210,其中:
中断模块202,用于通过进程运行应用程序,当应用程序出现死循环时,中断进程。
采集模块204,用于采集中断信息。
计算模块206,用于利用中断信息计算被中断进程的相对地址。
反汇编模块208,用于生成应用程序的反汇编代码,反汇编代码中包括反汇编地址。
定位模块210,通过被中断进程的相对地址,查找反汇编地址中的反汇编目标地址,通过反汇编目标地址识别应用程序死循环的故障部位。
在一个实施例中,中断信息包括被中断进程的绝对断点地址和被中断进程的结构指针;计算模块206还用于利用被中断进程的结构指针获取被中断进程的进程名称;利用被中断进程的结构指针获取进程被加载的起始地址;通过被中断进程的绝对断点地址和进程被加载的起始地址计算被中断进程的相对地址。
在一个实施例中,该装置还包括校验模块212,该模块用于获取应用程序名称;获取被中断进程的进程名称;判断被中断进程的进程名称是否与应用程序名称一致,若是,则记录该中断信息为有效中断信息;否则,丢弃该中断信息。
在一个实施例中,定位模块210还用于获取相对地址;获取应用程序对应的反汇编地址;判断反汇编地址是否与相对地址一致;若是,则记录该反汇编地址为反汇编目标地址。
在一个实施例中,该装置还包括插入模块214,该模块用于获取中断服务程序,在中断服务程序中插入调试代码,调试代码包括中断信息采集代码段和中断信息输出代码段;中断模块202还用于调用插入调试代码的中断服务程序,中断进程;采集模块204还用于利用中断信息采集代码段采集中断信息;通过中断信息输出代码段对中断信息进行计算得到被中断进程的相对地址。
在一个实施例中,提供了一种计算机设备,如图3所示,该计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序以及数据库等,处理器用于提供计算和控制能力。存储器为计算机程序的运行提供环境。数据库用于存储被中断进程的相对地址以及应用程序的反汇编代码等。处理器执行计算机程序时实现以下步骤:
通过进程运行应用程序,当应用程序出现死循环时,中断进程;
采集中断信息,利用中断信息计算被中断进程的相对地址;
生成应用程序的反汇编代码,反汇编代码中包括反汇编地址;
通过被中断进程的相对地址,查找反汇编地址中的反汇编目标地址,通过反汇编目标地址识别应用程序死循环的故障部位。
该计算机设备可以用独立的计算机设备或者是多个计算机设备组成的计算机设备集群来实现。本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
利用被中断进程的结构指针获取被中断进程的进程名称;
利用被中断进程的结构指针获取进程被加载的起始地址;
通过被中断进程的绝对断点地址和进程被加载的起始地址计算被中断进程的相对地址。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
获取应用程序名称;
获取被中断进程的进程名称;
判断被中断进程的进程名称是否与应用程序名称一致;
若是,则记录中断信息为有效中断信息;
否则,丢弃中断信息。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
获取相对地址;
获取反汇编代码中的反汇编地址;
判断反汇编地址是否与相对地址一致;
若是,则记录反汇编地址为反汇编目标地址。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:
获取中断服务程序,在中断服务程序中插入调试代码,调试代码包括中断信息采集代码段和中断信息输出代码段;
中断进程的步骤,包括:调用插入调试代码的中断服务程序,中断进程;
采集中断信息的步骤,包括:利用中断信息采集代码段采集中断信息;
利用中断信息计算被中断进程的相对地址的步骤,包括:通过中断信息输出代码段对中断信息进行计算得到被中断进程的相对地址。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
通过进程运行应用程序,当应用程序出现死循环时,中断进程;
采集中断信息,利用中断信息计算被中断进程的相对地址;
生成应用程序的反汇编代码,反汇编代码中包括反汇编地址;
通过被中断进程的相对地址,查找反汇编地址中的反汇编目标地址,通过反汇编目标地址识别应用程序死循环的故障部位。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
利用被中断进程的结构指针获取被中断进程的进程名称;
利用被中断进程的结构指针获取进程被加载的起始地址;
通过被中断进程的绝对断点地址和进程被加载的起始地址计算被中断进程的相对地址。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
获取应用程序名称;
获取被中断进程的进程名称;
判断被中断进程的进程名称是否与应用程序名称一致;
若是,则记录中断信息为有效中断信息;
否则,丢弃中断信息。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
获取相对地址;
获取反汇编代码中的反汇编地址;
判断反汇编地址是否与相对地址一致;
若是,则记录反汇编地址为反汇编目标地址。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
获取中断服务程序,在中断服务程序中插入调试代码,调试代码包括中断信息采集代码段和中断信息输出代码段;
中断进程的步骤,包括:调用插入调试代码的中断服务程序,中断进程;
采集中断信息的步骤,包括:利用中断信息采集代码段采集中断信息;
利用中断信息计算被中断进程的相对地址的步骤,包括:通过中断信息输出代码段对中断信息进行计算得到被中断进程的相对地址。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。