函数执行情况获取方法、装置、电子设备及可读存储介质与流程

文档序号:34463264发布日期:2023-06-15 04:56阅读:42来源:国知局
函数执行情况获取方法、装置、电子设备及可读存储介质与流程

本申请涉及程序开发,尤其涉及一种函数执行情况获取方法、装置、电子设备及可读存储介质。


背景技术:

1、目前android应用程序开发过程中,研发人员需要观察和了解开发期间和业务运行器件的程序执行过程。传统的观察方式是调用system trace、trace view等第三方的函数调用栈观察工具记录程序运行过程,具体在程序运行时通过adb命令记录trace文件,然后通过电脑终端的特定软件对trace文件进行解析和读取。这种方式的记录和读取只能分阶段进行,不能在同一终端或同一环境中既记录函数调用栈又同时输出记录文件,记录和读取均需要为特定软件或工具设置相应的环境条件,使用要求高,用户操作体验较差。

2、因此,如何提供一种解决上述技术问题的方案是目前本领域技术人员需要解决的问题。


技术实现思路

1、有鉴于此,本申请实施例提供了一种函数执行情况获取方法、装置、电子设备及可读存储介质,以解决现有技术中程序执行的观察步骤繁琐、环境要求高的问题。

2、本申请实施例的第一方面,提供了一种函数执行情况获取方法,包括:

3、当收到对目标程序的编译指令,遍历收集目标程序的所有初始函数,在每个初始函数的函数入口标识符之后插入一个第一记录函数,在每个初始函数的函数出口标识符之前插入一个第二记录函数;第一记录函数用于记录自身被调用时的第一时刻,第二记录函数用于记录自身被调用时的第二时刻;

4、当收到对目标程序的运行指令,运行目标程序,并获取所有第一记录函数记录的第一时刻和所有第二记录函数记录的第二时刻;

5、根据第一时刻和第二时刻,分析目标程序中初始函数的执行情况。

6、本申请实施例的第二方面,提供了一种函数执行情况获取装置,包括:

7、插桩模块,用于当收到对目标程序的编译指令,遍历收集目标程序的所有初始函数,在每个初始函数的函数入口标识符之后插入一个第一记录函数,在每个初始函数的函数出口标识符之前插入一个第二记录函数;第一记录函数用于记录自身被调用时的第一时刻,第二记录函数用于记录自身被调用时的第二时刻;

8、运行模块,用于当收到对目标程序的运行指令,运行目标程序,并获取所有第一记录函数记录的第一时刻和所有第二记录函数记录的第二时刻;

9、分析模块,用于根据第一时刻和第二时刻,分析目标程序中初始函数的执行情况。

10、本申请实施例的第三方面,提供了一种电子设备,包括存储器、处理器以及存储在存储器中并且可在处理器上运行的计算机程序,该处理器执行计算机程序时实现上述方法的步骤。

11、本申请实施例的第四方面,提供了一种可读存储介质,该可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述方法的步骤。

12、本申请实施例与现有技术相比存在的有益效果至少包括:本申请实施例通过编译时在目标程序中插入第一记录函数和第二记录函数,由第一记录函数和第二记录函数直接记录目标程序运行时每个初始函数的动作时刻,进而分析每个初始函数的执行情况,不需要第三方工具参与,也不要求分阶段更换环境,可在用户无感知的情况下生成执行情况,操作简单灵活高效,节省了大量时间和人工成本。



技术特征:

1.一种函数执行情况获取方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,当收到对目标程序的编译指令,遍历收集所述目标程序的所有初始函数,在每个所述初始函数的函数入口标识符之后插入一个第一记录函数,在每个所述初始函数的函数出口标识符之前插入一个第二记录函数的过程,包括:

3.根据权利要求1所述的方法,其特征在于,当收到对目标程序的编译指令,遍历收集所述目标程序的所有初始函数之后,在每个所述初始函数的函数入口标识符之后插入一个第一记录函数,在每个所述初始函数的函数出口标识符之前插入一个第二记录函数之前,还包括:

4.根据权利要求1所述的方法,其特征在于,当收到对目标程序的编译指令,遍历收集所述目标程序的所有初始函数,在每个所述初始函数的函数入口标识符之后插入一个第一记录函数,在每个所述初始函数的函数出口标识符之前插入一个第二记录函数的过程,包括:

5.根据权利要求1所述的方法,其特征在于,所述第一记录函数用于在调用记录缓存队列中记录自身被调用时的第一时刻,所述第二记录函数用于在所述调用记录缓存队列中记录自身被调用时的第二时刻。

6.根据权利要求1所述的方法,其特征在于,根据所述第一时刻和所述第二时刻,分析所述目标程序中所述初始函数的执行情况的过程,包括:

7.根据权利要求1至6中任一项所述的方法,其特征在于,根据所述第一时刻和所述第二时刻,分析所述目标程序中所述初始函数的执行情况的过程,包括:

8.一种函数执行情况获取装置,其特征在于,包括:

9.一种电子设备,包括存储器、处理器以及存储在所述存储器中并且可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至7中任一项所述方法的步骤。

10.一种可读存储介质,所述可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7中任一项所述方法的步骤。


技术总结
本申请涉及程序开发技术领域,提供了一种函数执行情况获取方法、装置、电子设备及可读存储介质。该方法包括:当收到对目标程序的编译指令,遍历收集目标程序的所有初始函数,在每个初始函数的函数入口标识符之后插入一个第一记录函数,在每个初始函数的函数出口标识符之前插入一个第二记录函数;当收到对目标程序的运行指令,运行目标程序,并获取所有第一记录函数记录的第一时刻和所有第二记录函数记录的第二时刻;根据第一时刻和第二时刻,分析目标程序中初始函数的执行情况。本申请实施例不需要第三方工具参与,也不要求分阶段更换环境,可在用户无感知的情况下生成执行情况,操作简单灵活高效,节省了大量时间和人工成本。

技术研发人员:王德南,徐开庭
受保护的技术使用者:成都赛力斯科技有限公司
技术研发日:
技术公布日:2024/1/13
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1