本公开涉及计算机,尤其涉及数据分析和自动驾驶等。
背景技术:
1、在自动驾驶领域中,软件在操作系统中运行时,经常会出现异常进而导致程序崩溃,为了快速定位崩溃代码位置,通常需要获取崩溃函数(崩溃线程)的堆栈信息。但是,一些情况下,堆栈信息所指示的崩溃函数可能不是造成程序崩溃的直接原因。对于此类情况,如何快速定位真正崩溃代码位置,对于排查程序的异常问题具有重要意义。
技术实现思路
1、本公开提供了一种线程堆栈信息获取方法、装置、电子设备及存储介质。
2、根据本公开的第一方面,提供了一种线程堆栈信息获取方法,包括:
3、响应于目标程序的第一线程接收到操作系统发出的第一信号,获取第一线程的第一堆栈信息以及目标程序的至少部分第二线程各自对应的第二堆栈信息;其中,第二线程是在操作系统发出第一信号时除第一线程之外存活的线程;
4、基于第一线程的第一堆栈信息和至少部分第二线程各自对应的第二堆栈信息,生成目标程序的目标堆栈信息。
5、根据本公开的第二方面,提供了一种线程堆栈信息获取装置,包括:
6、第一获取模块,用于响应于目标程序的第一线程接收到操作系统发出的第一信号,获取第一线程的第一堆栈信息以及目标程序的至少部分第二线程各自对应的第二堆栈信息;其中,第二线程是在操作系统发出第一信号时除第一线程之外存活的线程;
7、生成模块,用于基于第一线程的第一堆栈信息和至少部分第二线程各自对应的第二堆栈信息,生成目标程序的目标堆栈信息。
8、根据本公开的第三方面,提供了一种电子设备,包括:
9、至少一个处理器;
10、与至少一个处理器通信连接的存储器;
11、存储器存储有可以被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本公开中任一实施例的方法。
12、根据本公开的第四方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行根据本公开中任一实施例的方法。
13、根据本公开的第五方面,提供了一种计算机程序产品,包括存储在存储介质上的计算机程序,计算机程序在被处理器执行时实现根据本公开中任一实施例的方法。
14、根据本公开的第六方面,提供了一种自动驾驶车辆,包括如第三方面所述的电子设备。
15、根据本公开的方案,能够在目标程序崩溃时获取目标程序的目标堆栈信息,便于基于目标堆栈信息快速确定目标程序的崩溃代码位置,从而提高排查目标程序异常问题的效率。
16、上述概述仅仅是为了说明书的目的,并不意图以任何方式进行限制。除上述描述的示意性的方面、实施方式和特征之外,通过参考附图和以下的详细描述,本申请进一步的方面、实施方式和特征将会是容易明白的。
1.一种线程堆栈信息获取方法,包括:
2.根据权利要求1所述的方法,还包括:
3.根据权利要求2所述的方法,其中,所述获取所述目标程序的至少部分第二线程各自对应的第二堆栈信息,包括:
4.根据权利要求2所述的方法,其中,所述获取所述目标程序的线程标识符,包括:
5.根据权利要求4所述的方法,其中,所述第一目标函数与所述第二目标函数的名称相同;所述第一动态链接库被所述操作系统的目标环境变量指定,所述第一动态链接库是在所述目标程序运行前被所述操作系统加载的链接库。
6.根据权利要求1所述的方法,其中,所述获取所述第一线程的第一堆栈信息,包括:
7.根据权利要求6所述的方法,其中,所述获取所述第一线程的第一堆栈信息,包括:
8.根据权利要求1所述的方法,其中,获取所述目标程序的至少部分第二线程各自对应的第二堆栈信息,包括:
9.根据权利要求1所述的方法,还包括:
10.根据权利要求1所述的方法,还包括:
11.根据权利要求1所述的方法,还包括:
12.根据权利要求11所述的方法,还包括:
13.一种线程堆栈信息获取装置,包括:
14.根据权利要求13所述的装置,还包括:
15.根据权利要求14所述的装置,其中,所述第一获取模块,包括:
16.根据权利要求14所述的装置,其中,所述第二获取模块,包括:
17.根据权利要求16所述的装置,其中,所述第一目标函数与所述第二目标函数的名称相同;所述第一动态链接库被所述操作系统的目标环境变量指定,所述第一动态链接库是在所述目标程序运行前被所述操作系统加载的链接库。
18.根据权利要求13所述的装置,其中,所述第一获取模块,包括:
19.根据权利要求18所述的装置,其中,所述第一获取模块,包括:
20.根据权利要求13所述的装置,其中,所述第一获取模块,包括:
21.根据权利要求13所述的装置,还包括:
22.根据权利要求13所述的装置,还包括:
23.根据权利要求13所述的装置,还包括:
24.根据权利要求23所述的装置,还包括:
25.一种电子设备,包括:
26.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,计算机指令用于使计算机执行根据权利要求1-12中任一项的方法。
27.一种计算机程序产品,包括存储在存储介质上的计算机程序,计算机程序在被处理器执行时实现根据权利要求1-12中任一项的方法。
28.一种自动驾驶车辆,包括如权利要求25所述的电子设备。