异常处理方法、装置、设备、存储介质和程序产品与流程
本技术涉及计算机,特别是涉及一种异常处理方法、装置、设备、存储介质和程序产品。
背景技术:
1、随着计算机领域的不断发展,为了保证计算机中各进程运行的稳定性,可以为进程预先配置出一些异常处理逻辑。进一步的,为了对异常处理逻辑进行测试,可以在进程中插入能够导致进程异常运行的自定义代码,进行异常模拟,从而触发异常处理逻辑运行。
2、然而,采用现有技术在编写进程代码时就添加自定义代码,虽然可以触发异常处理逻辑运行,但是由于自定义代码是固定的,不能在进程运行时动态修改,即每次更换所要测试的异常处理逻辑时,都要重新添加自定义代码并编译,这会降低异常模拟的效率。
技术实现思路
1、基于此,有必要针对上述技术问题,提供一种能够提高异常模拟效率的异常处理方法、装置、设备、存储介质和程序产品。
2、第一方面,本技术提供了一种异常处理方法,应用于目标进程所在的服务器,包括:
3、响应于针对目标进程的运行调整请求,确定运行调整类型;
4、在运行调整类型为异常模拟的情况下,根据运行调整请求中的异常模拟信息,确定目标进程中待调整函数的函数地址,并加载异常模拟信息对应的目标链接库;其中,目标链接库中存储有各类型异常函数的函数代码;
5、根据异常模拟信息和目标链接库,在待调整函数的函数地址前添加指向目标链接库中目标异常函数的跳转指令,以使目标进程基于跳转指令运行目标异常函数。
6、在本技术实施例中,通过在待调整函数的函数地址前添加指向目标异常函数的跳转指令,能够在目标进程执行待调整函数前,直接跳转执行目标异常函数,无需对目标进程进行重新编译,即可实现目标进程的异常模拟,能够有效提高异常模拟的效率和灵活性。
7、在其中一个实施例中,根据异常模拟信息和目标链接库,在待调整函数的函数地址前添加指向目标链接库中目标异常函数的跳转指令,包括:
8、采用异常模拟信息中的异常函数标识,在目标链接库的节头表内进行查询,得到异常函数标识所表示的目标异常函数的异常函数地址;
9、根据异常函数地址,构建指向目标异常函数的跳转指令;
10、在原函数地址前添加跳转指令。
11、在本技术实施例中,一方面,通过从目标链接库的节头表中查询异常函数地址,能够缩小地址查询的范围,进而提高地址查询的效率;另一方面,根据异常函数地址,构建指向目标异常函数的跳转指令,并在原函数地址前添加跳转指令,能够保证跳转指令跳转功能的可靠性,以及指令位置添加的准确性。
12、在其中一个实施例中,在目标异常函数的数量为至少两个的情况下,根据异常函数地址,构建指向目标异常函数的跳转指令,包括:
13、根据各目标异常函数之间的依赖关系和/或各目标异常函数对应的异常恢复时长,确定各目标异常函数之间的执行顺序;其中,每一目标异常函数对应的异常恢复时长是目标进程对目标异常函数对应的异常情况进行处理所需的时长;
14、根据执行顺序,对各目标异常函数的异常函数地址进行排序,并根据排序后的各异常函数地址,构建指向各目标异常函数的跳转指令。
15、在本技术实施例中,一方面,通过根据各目标异常函数之间的依赖关系和/或各目标异常函数对应的异常恢复时长,确定各目标异常函数之间的执行顺序,进而构建跳转指令,能够保证各目标异常函数之间运行的合理性,从而提高了异常模拟的可靠性;另一方面,在一个跳转指令中容纳多个异常函数地址,无需重复构建多个跳转指令,能够提高跳转指令构建的灵活性。
16、在其中一个实施例中,在待调整函数的函数地址前添加指向目标链接库中目标异常函数的跳转指令之后,方法还包括:
17、根据待调整函数的函数信息,生成目标进程关联的异常恢复信息;其中,函数信息包括函数名称、函数地址和函数代码中的至少两项。
18、在本技术实施例中,通过根据待调整函数的函数信息,生成目标进程关联的异常恢复信息,能够在后续执行异常恢复操作时,提高异常恢复的效率。
19、在其中一个实施例中,该方法还包括:
20、在运行调整类型为异常恢复的情况下,根据运行调整请求中的异常恢复信息,确定目标进程中待恢复函数的函数名称;
21、根据待恢复函数的函数名称,从目标进程关联的各异常恢复信息中,确定待恢复函数对应的目标异常恢复信息;
22、根据目标异常恢复信息中的函数地址,对目标进程进行异常恢复处理。
23、在本技术实施例中,通过根据待恢复函数的函数名称,确定目标异常恢复信息,进而根据目标异常恢复信息中的函数地址,对目标进程进行异常恢复处理,能够准确定位出异常模拟的位置,从而保证异常恢复的可靠性。
24、在其中一个实施例中,根据目标异常恢复信息中的函数地址,对目标进程进行异常恢复处理,包括:
25、根据目标异常恢复信息中的函数地址,删除待恢复函数前指向目标链接库中异常函数的跳转指令,并删除目标异常恢复信息。
26、在本技术实施例中,一方面,删除待恢复函数前指向异常函数的跳转指令,能够使目标进程不再基于跳转指令执行异常函数,并恢复了待恢复函数的正常执行,从而保证了异常恢复的可靠性;另一方面,删除目标异常恢复信息,能够有效清理目标进程的无用缓存。
27、第二方面,本技术还提供了一种异常处理装置,包括:
28、类型确定模块,用于响应于针对目标进程的运行调整请求,确定运行调整类型;
29、地址确定模块,用于在运行调整类型为异常模拟的情况下,根据运行调整请求中的异常模拟信息,确定目标进程中待调整函数的函数地址,并加载异常模拟信息对应的目标链接库;其中,目标链接库中存储有各类型异常函数的函数代码;
30、指令添加模块,用于根据异常模拟信息和目标链接库,在待调整函数的函数地址前添加指向目标链接库中目标异常函数的跳转指令,以使目标进程基于跳转指令运行目标异常函数。
31、第三方面,本技术还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:
32、响应于针对目标进程的运行调整请求,确定运行调整类型;
33、在运行调整类型为异常模拟的情况下,根据运行调整请求中的异常模拟信息,确定目标进程中待调整函数的函数地址,并加载异常模拟信息对应的目标链接库;其中,目标链接库中存储有各类型异常函数的函数代码;
34、根据异常模拟信息和目标链接库,在待调整函数的函数地址前添加指向目标链接库中目标异常函数的跳转指令,以使目标进程基于跳转指令运行目标异常函数。
35、第四方面,本技术还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:
36、响应于针对目标进程的运行调整请求,确定运行调整类型;
37、在运行调整类型为异常模拟的情况下,根据运行调整请求中的异常模拟信息,确定目标进程中待调整函数的函数地址,并加载异常模拟信息对应的目标链接库;其中,目标链接库中存储有各类型异常函数的函数代码;
38、根据异常模拟信息和目标链接库,在待调整函数的函数地址前添加指向目标链接库中目标异常函数的跳转指令,以使目标进程基于跳转指令运行目标异常函数。
39、第五方面,本技术还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:
40、响应于针对目标进程的运行调整请求,确定运行调整类型;
41、在运行调整类型为异常模拟的情况下,根据运行调整请求中的异常模拟信息,确定目标进程中待调整函数的函数地址,并加载异常模拟信息对应的目标链接库;其中,目标链接库中存储有各类型异常函数的函数代码;
42、根据异常模拟信息和目标链接库,在待调整函数的函数地址前添加指向目标链接库中目标异常函数的跳转指令,以使目标进程基于跳转指令运行目标异常函数。
43、上述异常处理方法、装置、设备、存储介质和程序产品,通过响应于针对目标进程的运行调整请求,在运行调整类型为异常模拟的情况下,根据运行调整请求中的异常模拟信息,确定目标进程中待调整函数的函数地址,并加载异常模拟信息对应的存储有各类型异常函数的函数代码的目标链接库;随后,根据异常模拟信息和目标链接库,在待调整函数的函数地址前添加指向目标链接库中目标异常函数的跳转指令,以使目标进程基于跳转指令运行目标异常函数。相比于相关技术中,需要在编写进程代码时就添加异常函数的函数代码而言,采用上述方法,通过在待调整函数的函数地址前添加指向目标异常函数的跳转指令,能够在目标进程执行待调整函数前,直接跳转执行目标异常函数,无需对目标进程进行重新编译,即可实现目标进程的异常模拟,能够有效提高异常模拟的效率和灵活性。
版权声明:本站专利文献数据主要来源于国家知识产权局等公开渠道,由 技术新讯 进行整理汇编。页面设计及数据汇编的著作权归本站所有。全部内容仅供个人学习、科研评估与技术交流参考,严禁用于任何商业用途(包括但不限于直接生产制造、技术转让、倒卖数据等)。
免责条款:专利技术具有时效性,本站不对资料的绝对准确性、完整性和可实施性提供任何明示或暗示的担保。因参考本站内容造成的直接或间接损失,本站不承担相关法律责任。若您认为本站内容有侵权问题,请及时提供权属证明与我们联系,本站将在核实后依法处理。反馈意见:yyfuon@163.com