异常处理方法、装置、计算机设备和存储介质与流程

专利2025-04-24  15


本技术涉及智能驾驶,特别是涉及一种异常处理方法、装置、计算机设备和存储介质。


背景技术:

1、autosar(automotive open system architecture)软件应用在汽车电子系统的开发中,可以提高汽车电子系统的开发效率、可维护性、可扩展性以及软硬件的分离。在新能源汽车领域,autosar软件应用越来越广泛,在试验车和量产车上,运行着大量的软件,当出现软件死机时,通常采用看门狗来进行复位,以便让系统接着运行。然而通过看门狗复位的方式,不能对软件死机进行异常分析。

2、针对通过看门狗复位的方式,不能对软件死机进行异常分析这一问题,传统技术中,通过调试器在实验室环境去复现死机工况,根据复现的死机状况进行异常分析,存在异常分析不准确的问题。


技术实现思路

1、基于此,有必要针对上述技术问题,提供一种能够提高软件异常分析的准确性的异常处理方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。

2、第一方面,本技术提供了一种异常处理方法,包括:

3、在检测到软件处理器核中任务运行异常的情况下,确定所述任务运行异常的异常时刻;

4、获取所述软件处理器核的先前上下文信息寄存器在所述异常时刻存储的地址信息;

5、根据所述地址信息进行n次上下文区域地址重构,得到所述异常时刻之前n个函数地址;

6、根据所述n个函数地址,确定用于确定软件异常位置的控制流数据。

7、在其中一个实施例中,所述根据所述地址信息进行n次上下文区域地址重构,得到所述异常时刻之前n个函数地址,包括:

8、根据所述地址信息进行第一次上下文区域地址重构,重构出在所述异常时刻之前的上下文区域中存储的函数地址;

9、从第二次上下文区域地址重构开始,针对每次上下文区域地址重构,获取上一次地址重构确定的上下文区域中存储的链接信息;

10、根据所述链接信息进行地址重构,得到当前上下文区域的地址;

11、根据所述地址获取所述当前上下文区域中存储的函数地址,直到第n次上下文区域地址重构完成,得到所述异常时刻之前n个函数地址。

12、在其中一个实施例中,所述根据所述地址信息进行第一次上下文区域地址重构,重构出在所述异常时刻之前的上下文区域中存储的函数地址,包括:

13、解析所述地址信息,得到所述地址信息中段数据和偏移数据;

14、对所述段数据和所述偏移数据进行编码操作,重构出在所述异常时刻之前的第一次重构的上下文区域的地址;

15、根据所述第一次重构的上下文区域的地址,从所述第一次重构的上下文区域中确定函数地址。

16、在其中一个实施例中,所述对所述段数据和所述偏移数据进行编码操作,重构出在所述异常时刻之前的上下文区域中存储的函数地址,包括:

17、从所述段数据中提取第一目标位数据,以及从所述偏移数据中提取第二目标位数据;

18、将所述第一目标位数据放置对应上下文区域地址空间的第一目标位置,将所述第二目标位数据放置所述上下文区域地址空间的第二目标位置,重构出在所述异常时刻之前的第一次重构的上下文区域的地址。

19、在其中一个实施例中,所述方法还包括:

20、在检测到软件处理器核中任务运行异常的情况下,生成重构触发事件;

21、响应于所述重构触发事件,确定所述任务运行异常的异常类型;

22、根据所述异常类型确定对应的重构入口路径,基于所述重构入口路径进行重构,执行所述确定所述任务运行异常的异常时刻的步骤。

23、在其中一个实施例中,所述根据所述n个函数地址,确定用于确定所述软件异常位置的控制流数据,包括:

24、确定所述软件处理器核的核标识;

25、将n次上下文区域地址重构中每次上下文区域地址重构得到的函数地址拼接至与所述核标识对应的控制流缓存区中,得到用于确定所述软件异常位置的控制流数据,将所述控制流数据存储至存储介质中。

26、在其中一个实施例中,在所述将所述控制流数据存储至存储介质中之前,所述方法还包括:

27、若所述核标识不为预设核标识,则将所述控制流数据发送至所述预设核标识所在的目标处理器核;

28、通过所述目标处理器核将所述控制流数据存储至存储介质中。

29、在其中一个实施例中,所述方法还包括:

30、响应于异常分析指令,所述存储介质中获取对应的目标控制流数据;

31、根据所述目标控制流数据中的所有函数地址,确定每个所述函数地址对应的目标函数;

32、根据各所述目标函数之间的执行顺序,从所述目标函数中确定异常函数;

33、根据所述异常函数确定所述软件的异常位置。

34、第二方面,本技术还提供了一种异常处理装置,包括:

35、数据确定模块,用于在检测到软件处理器核中任务运行异常的情况下,确定所述任务运行异常的异常时刻;

36、地址信息获取模块,用于获取所述软件处理器核的先前上下文信息寄存器在所述异常时刻存储的地址信息;

37、重构模块,用于根据所述地址信息进行n次上下文区域地址重构,得到所述异常时刻之前n个函数地址;

38、存储模块,用于根据所述n个函数地址,确定用于确定软件异常位置的控制流数据。

39、第三方面,本技术还提供了一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

40、在检测到软件处理器核中任务运行异常的情况下,确定所述任务运行异常的异常时刻;

41、获取所述软件处理器核的先前上下文信息寄存器在所述异常时刻存储的地址信息;

42、根据所述地址信息进行n次上下文区域地址重构,得到所述异常时刻之前n个函数地址;

43、根据所述n个函数地址,确定用于确定软件异常位置的控制流数据。

44、第四方面,本技术还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

45、在检测到软件处理器核中任务运行异常的情况下,确定所述任务运行异常的异常时刻;

46、获取所述软件处理器核的先前上下文信息寄存器在所述异常时刻存储的地址信息;

47、根据所述地址信息进行n次上下文区域地址重构,得到所述异常时刻之前n个函数地址;

48、根据所述n个函数地址,确定用于确定软件异常位置的控制流数据。

49、第五方面,本技术还提供了一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现以下步骤:

50、在检测到软件处理器核中任务运行异常的情况下,确定所述任务运行异常的异常时刻;

51、获取所述软件处理器核的先前上下文信息寄存器在所述异常时刻存储的地址信息;

52、根据所述地址信息进行n次上下文区域地址重构,得到所述异常时刻之前n个函数地址;

53、根据所述n个函数地址,确定用于确定软件异常位置的控制流数据。

54、上述异常处理方法、装置、计算机设备、存储介质和计算机程序产品,在检测到软件处理器核中任务运行异常的情况下,确定任务运行异常的异常时刻,获取在这一异常时刻的先前上下文信息寄存器中存储的地址信息,基于地址信息进行n次上下文区域地址重构,得到在此异常时刻之前的n个函数地址,根据n个函数地址,确定用于确定软件异常位置的控制流数据,在异常的情况下,可以收集所有发生异常的控制流数据,基于控制流数据能够进行异常分析,避免了软件故障复位的情况下,无法对异常进行分析的问题,以及不需要通过实验室环境去复现死机工况,避免了车上工况复杂难以复现的情况,降低了异常分析的成本以及提高了异常分析的准确性。


技术特征:

1.一种异常处理方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述根据所述地址信息进行n次上下文区域地址重构,得到所述异常时刻之前n个函数地址,包括:

3.根据权利要求2所述的方法,其特征在于,所述根据所述地址信息进行第一次上下文区域地址重构,重构出在所述异常时刻之前的上下文区域中存储的函数地址,包括:

4.根据权利要求3所述的方法,其特征在于,所述对所述段数据和所述偏移数据进行编码操作,重构出在所述异常时刻之前的第一次重构的上下文区域的地址,包括:

5.根据权利要求1所述的方法,其特征在于,所述方法还包括:

6.根据权利要求1至5任意一项所述的方法,其特征在于,所述根据所述n个函数地址,确定用于确定所述软件异常位置的控制流数据,包括:

7.根据权利要求6所述的方法,其特征在于,在所述将所述控制流数据存储至存储介质中之前,所述方法还包括:

8.根据权利要求6所述的方法,其特征在于,所述方法还包括:

9.一种异常处理装置,其特征在于,所述装置包括:

10.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至8中任一项所述的方法的步骤。


技术总结
本申请涉及一种异常处理方法、装置、计算机设备和存储介质。所述方法包括:在检测到软件处理器核中任务运行异常的情况下,确定任务运行异常的异常时刻;获取软件处理器核的先前上下文信息寄存器在异常时刻存储的地址信息;根据地址信息进行N次上下文区域地址重构,得到异常时刻之前N个函数地址;根据N个函数地址,确定用于确定软件异常位置的控制流数据。采用本方法能够提高软件异常分析的准确性。

技术研发人员:艾敬尧
受保护的技术使用者:浙江极氪智能科技有限公司
技术研发日:
技术公布日:2024/11/11
转载请注明原文地址: https://tieba.8miu.com/read-13479.html

最新回复(0)