软件追踪方法及装置、存储介质及电子设备与流程

文档序号:36711412发布日期:2024-01-16 12:06阅读:19来源:国知局
软件追踪方法及装置、存储介质及电子设备与流程

本申请涉及计算机,具体而言,涉及一种软件追踪方法及装置、存储介质及电子设备。


背景技术:

1、软件追踪是分析和解决软件运行错误的主要方法之一,软件追踪可以指在软件运行过程中记录和输出软件执行的具体状况信息,这些信息被称为软件追踪信息。软件开发人员可以通过阅读分析软件追踪信息,理解软件运行错误的发生场景和条件,从而找到消除软件运行错误的解决方案。

2、然而,在现有技术中,由于获取到的软件追踪信息不够精确,因此不利于分析软件错误。


技术实现思路

1、本申请实施例的目的在于提供一种软件追踪方法及装置、存储介质及电子设备,以改善上述至少部分技术问题。

2、为实现上述目的,本申请提供如下技术方案:

3、第一方面,本申请实施例提供一种软件追踪方法,应用于被加载到目标软件对应的进程中的第一动态链接库,所述方法包括:调用所述目标软件提供的软件追踪接口,对所述目标软件中的生成软件追踪信息的功能进行配置和/或控制,以打开生成所需的第一软件追踪信息的功能;接收并输出所述目标软件在运行过程中生成的所述第一软件追踪信息。

4、上述方法通过第一动态链接库调用软件追踪接口,来实现对目标软件中的生成软件追踪信息的功能进行配置和/或控制,而无论是第一动态链接库还是软件追踪接口都是可编程的,从而可以实现对生成软件追踪信息的功能进行复杂的配置和/或灵活的控制,精准获取到所需的软件追踪信息(第一软件追踪信息),进而可以更高效地分析软件错误。另外,由于该方法可以精准地获取所需的软件追踪信息,而非获取全部可用的软件追踪信息,因此获取信息所付出的资源开销较小。另外,由于该方法通过被加载到目标软件对应的进程中的第一动态链接库来获取并输出软件追踪信息,因此不需要对目标软件进行修改和编译,实现起来简单高效。

5、在第一方面的一种实现方式中,在所述目标软件运行之前,所述第一动态链接库通过优先加载的方式被加载到所述目标软件对应的进程中。

6、在上述实现方式中,第一动态链接库在目标软件运行之前就进行优先加载,从而可以在目标软件运行之前就完成对目标软件中的生成软件追踪信息的功能的配置和/或控制,使得目标软件运行在运行过程中生成的软件追踪信息(如果需要的话)都可以被第一动态链接库获取。

7、在第一方面的一种实现方式中,若所述目标软件所在的操作系统为linux系统,则将系统环境变量ld_preload配置为包括所述第一动态链接库,以支持所述第一动态链接库的优先加载。

8、上述实现方式给出在linux系统下配置优先加载的方法。

9、在第一方面的一种实现方式中,所述目标软件包括主程序以及至少一个第二动态链接库,所述软件追踪接口由所述主程序和/或所述第二动态链接库提供。

10、在上述实现方式中,软件追踪接口可由主程序和/或第二动态链接库实现,比较灵活。

11、在第一方面的一种实现方式中,所述调用所述目标软件提供的软件追踪接口,包括:在所述第一动态链接库中的全局对象的构造函数被触发执行时,调用所述目标软件提供的软件追踪接口。

12、由于全局对象的构造先于目标软件的入口函数执行,因此在上述实现方式中,可将调用软件追踪接口的操作放到全局对象的构造函数中执行,使得在目标软件运行之前就完成对目标软件中的生成软件追踪信息的功能的配置和/或控制。

13、在第一方面的一种实现方式中,所述接收并输出所述目标软件在运行过程中生成的所述第一软件追踪信息,包括:缓存所述目标软件在运行过程中生成的第一软件追踪信息;在所述全局对象的析构函数被触发执行时,输出缓存的所有第一软件追踪信息。

14、在上述实现方式中,直到目标软件运行结束、全局对象析构时才将所有缓存的第一软件追踪信息输出,可以避免频繁地执行输出数据的操作,有利于减轻中央处理器的压力。

15、在第一方面的一种实现方式中,所述方法还包括:在所述全局对象的构造函数被触发执行时,创建信息处理线程;所述接收并输出所述目标软件在运行过程中生成的所述第一软件追踪信息,包括:缓存所述目标软件在运行过程中生成的第一软件追踪信息;所述信息处理线程在处于运行状态时,输出当前缓存的第一软件追踪信息;在所述全局对象的析构函数被触发执行时,若存在缓存的第一软件追踪信息尚未输出,则输出剩余的第一软件追踪信息。

16、在上述实现方式中,每当信息处理线程处于运行状态,就会将当前缓存的第一软件追踪信息输出,可以避免因为目标软件意外终止所导致的缓存的第一软件追踪信息丢失的问题。

17、第二方面,本申请实施例提供一种软件追踪装置,包括:接口调用模块,用于利用被加载到目标软件对应的进程中的第一动态链接库调用所述目标软件提供的软件追踪接口,对所述目标软件中的生成软件追踪信息的功能进行配置和/或控制,以打开生成所需的第一软件追踪信息的功能;追踪信息处理模块,用于利用所述第一动态链接库接收并输出所述目标软件在运行过程中生成的所述第一软件追踪信息。

18、第三方面,本申请实施例提供一种计算机程序产品,包括计算机程序指令,所述计算机程序指令被处理器读取并运行时,执行第一方面或第一方面的任意一种可能的实现方式提供的方法。

19、第四方面,本申请实施例提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器读取并运行时,执行第一方面或第一方面的任意一种可能的实现方式提供的方法。

20、第五方面,本申请实施例提供一种电子设备,包括:存储器以及处理器,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器读取并运行时,执行第一方面或第一方面的任意一种可能的实现方式提供的方法。



技术特征:

1.一种软件追踪方法,其特征在于,应用于被加载到目标软件对应的进程中的第一动态链接库,所述方法包括:

2.根据权利要求1所述的软件追踪方法,其特征在于,在所述目标软件运行之前,所述第一动态链接库通过优先加载的方式被加载到所述目标软件对应的进程中。

3.根据权利要求2所述的软件追踪方法,其特征在于,若所述目标软件所在的操作系统为linux系统,则将系统环境变量ld_preload配置为包括所述第一动态链接库,以支持所述第一动态链接库的优先加载。

4.根据权利要求1所述的软件追踪方法,其特征在于,所述目标软件包括主程序以及至少一个第二动态链接库,所述软件追踪接口由所述主程序和/或所述第二动态链接库提供。

5.根据权利要求2所述的软件追踪方法,其特征在于,所述调用所述目标软件提供的软件追踪接口,包括:

6.根据权利要求5所述的软件追踪方法,其特征在于,所述接收并输出所述目标软件在运行过程中生成的所述第一软件追踪信息,包括:

7.根据权利要求5所述的软件追踪方法,其特征在于,所述方法还包括:

8.一种软件追踪装置,其特征在于,包括:

9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序指令,所述计算机程序指令被处理器读取并运行时,执行如权利要求1-7中任一项所述的方法。

10.一种电子设备,其特征在于,包括:存储器以及处理器,所述存储器中存储有计算机程序指令,所述计算机程序指令被所述处理器读取并运行时,执行权利要求1-7中任一项所述的方法。


技术总结
本申请涉及计算机技术领域,提供一种软件追踪方法及装置、存储介质及电子设备。其中,软件追踪方法应用于被加载到目标软件对应的进程中的第一动态链接库,具体包括:调用目标软件提供的软件追踪接口,对目标软件中的生成软件追踪信息的功能进行配置和/或控制,以打开生成所需的第一软件追踪信息的功能;接收并输出目标软件在运行过程中生成的第一软件追踪信息。该方法可以实现对生成软件追踪信息的功能进行复杂的配置和/或灵活的控制,从而精准获取到所需的软件追踪信息,更高效地分析软件错误。另外,该方法获取软件追踪信息所付出的资源开销较小,而且也不需要对目标软件进行修改和编译,实现起来简单高效。

技术研发人员:张辉,王成磊,寇栋,胡爱涛,石加圣
受保护的技术使用者:上海芷锐电子科技有限公司
技术研发日:
技术公布日:2024/1/15
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1