一种进程的调用栈信息获取方法、电子设备及系统与流程

文档序号:37378964发布日期:2024-03-22 10:31阅读:10来源:国知局
一种进程的调用栈信息获取方法、电子设备及系统与流程

本技术实施例涉及内存管理,尤其涉及一种进程的调用栈信息获取方法、电子设备及系统。


背景技术:

1、电子设备上包括多种类型的应用程序。电子设备可以将应用程序的运行代码加载在内存中,并为应用程序创建进程。电子设备会为进程分配一块内存区空间。该内存空间用于存储运行该应用程序的代码、静态数据等。应用程序运行时,操作系统分配给进程的内存空间是动态变化。示例性的,进程可以调用内存分配函数向操作系统申请内存空间,用于存放进程运行所需的数据。进程在执行完函数之后,可以释放申请到的内存空间。

2、进程运行时,已动态分配的内存由于某种原因未释放或无法释放会导致内存泄露。内存泄露会导致系统没有足够的内存空间分配给应用程序供其使用,进而导致应用程序运行速度减慢或系统奔溃等严重后果。在测试环境中,当用于测试的电子设备发生内存泄露时,研发人员可以获取进程的调用栈信息,根据调用栈信息分析进程占用内存的情况,定位内存泄露的原因并优化代码设计。

3、相关技术中,当用于测试的电子设备发生内存泄露时,无法及时获取进程的调用栈信息,从而无法测试出上述内存泄露问题,即内存泄露问题在测试过程中容易被遗漏。


技术实现思路

1、本技术实施例提供一种进程的调用栈信息获取方法、电子设备及系统,用于解决进程的调用栈信息获取不及时的问题。

2、为达到上述目的,本技术的实施例采用如下技术方案:

3、第一方面,提供了一种进程的调用栈信息获取方法,该方法应用于第一电子设备。该方法包括:第一电子设备接收第二电子设备发送的第一配置信息,第一配置信息包括目标进程的名称、第一内存的标识、以及第一预设值,第一配置信息用于获取目标进程的调用栈信息,该调用栈信息可以反映目标进程调用内存分配函数的函数调用关系;响应于接收到上述第一配置信息,第一电子设备监控运行在第一电子设备中目标进程占用第一内存的大小;在目标进程占用第一内存的达到第一预设值时,第一电子设备获取目标进程的调用栈信息。

4、可见,本技术中,第一电子设备可以接收来自第二电子设备的第一配置信息,并根据该第一配置信息监控目标进程占用第一内存的大小。在监控到目标进程占用第一内存的大小达到第一预设值时,第一电子设备可以自动获取目标进程的调用栈信息。目标进程占用第一内存达到第一预设值时,第一电子设备可以自动获取目标进程的调用栈信息。采用本方案,第一电子设备可以按照第二电子设备的指示,及时获取目标进程的调用栈信息。

5、在第一方面的一种可能的实现方式中,第一配置信息还可以包括目标类型的调用栈的标识,其中,目标类型的调用栈可以包括java内存调用栈、nat ive内存调用栈、内核内存调用栈、dmabuf内存调用栈中的一种或多种。第一电子设备响应于接收到第一配置信息可以获取目标类型的调用栈信息。

6、第一配置信息还可以包括目标类型的调用栈的标识,响应于接收到该第一配置信息,第一电子设备可以获取该标识对应的目标类型的调用栈信息。具体的,第一配置信息可以包括一种目标类型的调用栈的标识或多种目标类型的调用栈的标识。响应于该第一配置信息,第一电子设备可以获取一种与该标识对应的目标类型的调用栈信息或多种与该标识对应的目标类型的调用栈信息。

7、在第一方面的另一种可能的实现方式中,第一电子设备还可以响应于第一配置信息,获取一段时间内目标进程的调用栈信息。

8、具体的,第一配置信息还包括第二预设值,第二预设值小于第一预设值。第一电子设备响应该第一配置信息可以从目标进程占用第一内存为第二预设值时开始,截止目标进程占用第一内存为第一预设值时,持续获取目标进程的调用栈信息。

9、如此,第一电子设备可以响应于第一配置信息,监控目标进程占用第一内存的大小,获取目标进程由占用第一内存为第二预设值运行至占用第一内存为第一预设值,这一时间段内目标进程的调用栈信息。

10、在第一方面的另一种可能的实现方式中,第一电子设备还可以响应于第一配置信息,获取一段时间内目标进程的java hprof文件和nat ive内存调用栈。

11、具体的,第一电子设备响应第一配置信息可以从目标进程占用第一内存为第二预设值时开始,截止目标进程占用第一内存为第一预设值时,持续获取目标进程的nat ive内存调用栈。第一电子设备可以在目标进程占用第一内存为第一预设值时,获取java hprof文件。

12、如此,第一电子设备可以同时获取到nat ive内存调用栈及java hprof文件,且保证获取时间一致。

13、在第一方面的另一种可能的实现方式中,第一电子设备可以包括第一共享库,第一共享库中存储有预设函数,运行在第一电子设备中的进程都可以加载第一共享库并调用其中的预设函数;第一电子设备可以通过调用第一共享库中的预设函数来获取目标进程的调用栈信息。

14、示例性的,响应于接收到第一配置信息,第一电子设备可以加载第一共享库;在监控到目标进程占用第一内存达到第一预设值时,第一电子设备加载第一共享库中的预设函数,获取目标进程的调用栈信息。

15、在第一方面的另一种可能的实现方式中,第一电子设备可以包括第一共享库,第一共享库中存储有预设函数,运行在第一电子设备中的进程都可以加载第一共享库并调用其中的预设函数。当目标类型的调用栈为dmabuf内存调用栈时,且目标类型的调用栈信息为fd调用栈时,第一电子设备可以在目标进程占用第一内存为第二预设值时,加载第一共享库,持续获取目标进程的fd调用栈。

16、在第一方面的另一种可能的实现方式中,第一预设值为目标进程所占用的第一内存出现内存泄露时的阈值。如此,第一电子设备可以监控目标进程占用第一内存的大小,在目标进程占用第一内存达到内存泄露的阈值时,及时获取此时目标进程的调用栈信息。第一电子设备还可以监控目标进程占用第一内存的大小,获取目标进程由占用第一内存为第二预设值运行至占用第一内存达到内存泄露的阈值时,及时获取这一时间段内目标进程的调用栈信息。

17、在第一方面的另一种可能的实现方式中,响应于接收到第一配置信息,若第一电子设备以运行目标进程,第一电子设备可以监控目标进程占用第一内存的大小,并在监控到目标进程占用第一内存达到第一预设值时,自动获取目标进程的调用栈信息;若第一电子设备还为运行该目标进程,第一电子设备可以在第一电子设备运行该目标进程中之后,监控目标进程占用第一内存的大小,并在监控到目标进程占用第一内存达到第一预设值时,自动获取目标进程的调用栈信息。

18、第二方面,本技术提供一种获取进程调用栈信息的系统,该系统包括第一电子设备及第二电子设备。其中,第二电子设备用于向第一电子设备发送第一配置信息,第一配置信息包括目标进程的名称、第一内存的标识和第一预设值,第一配置信息用于获取目标进程的调用栈信息,调用栈信息用于反映目标进程调用内存分配函数的函数调用关系;第一电子设备用于执行如第一方面任一项的所述的方法。

19、第三方面,本技术提供一种电子设备,该电子设备包括:存储器和一个或多个处理器;存储器与处理器耦合;其中,存储器用于存储计算机程序代码,计算机程序代码包括计算机指令;当计算机指令被处理器执行时,使得电子设备执行如下步骤:接收来自第二电子设备的第一配置信息,第一配置信息包括目标进程的名称、第一内存的标识和第一预设值,第一配置信息用于获取目标进程的调用栈信息,调用栈信息用于反映目标进程调用内存分配函数的函数调用关系;响应于接收到第一配置信息,监控第一电子设备中运行的目标进程占用第一内存的大小;当目标进程占用第一内存达到第一预设值时,获取调用栈信息。

20、结合第三方面,在一种可能的设计方式中,第一配置信息还包括目标类型的调用栈的标识;目标类型的调用栈包括:java内存调用栈、nat ive内存调用栈、内核内存调用栈、dmabuf内存调用栈中的一种或多种;当上述计算机指令被处理器执行时,使得电子设备还执行以下步骤:获取目标类型的调用栈信息。

21、结合第三方面,在一种可能的设计方式中,第一配置信息还包括第二预设值,第二预设值小于第一预设值;当上述计算机指令被处理器执行时,使得电子设备还执行以下步骤:从目标进程占用第一内存达到第二预设值开始,截止目标进程占用第一内存达到第一预设值,持续获取调用栈信息。

22、结合第三方面,在一种可能的设计方式中,目标类型的调用栈包括:java hprof文件和nat ive内存调用栈;当上述计算机指令被处理器执行时,使得电子设备还执行以下步骤:从目标进程占用第一内存达到第二预设值开始,截止目标进程占用第一内存达到第一预设值,持续获取nat ive内存调用栈的调用栈信息;当第一内存达到第一预设值时,获取java hprof文件。

23、结合第三方面,在一种可能的设计方式中,第一电子设备包括第一共享库,第一共享库中存储有预设函数,运行在第一电子设备上的进程加载第一共享库以调用预设函数;当上述计算机指令被处理器执行时,使得电子设备还执行以下步骤:调用第一共享库中的预设函数,获取调用栈信息。

24、结合第三方面,在一种可能的设计方式中,第一电子设备包括第一共享库,第一共享库中存储有预设函数,运行在第一电子设备上的进程加载第一共享库以调用预设函数,目标类型的调用栈包括dmabuf内存调用栈,目标类型的调用栈信息为fd调用栈;当上述计算机指令被处理器执行时,使得电子设备还执行以下步骤:在目标进程占用第一内存达到第二预设值时,加载第一共享库并调用预设函数,持续获取fd调用栈。

25、结合第三方面,在一种可能的设计方式中,当上述计算机指令被处理器执行时,使得电子设备还执行以下步骤:响应于接收到第一配置信息,若第一电子设备已运行目标应用,则监控第一电子设备中运行的目标进程占用第一内存的大小;若第一电子设备未运行目标应用,则在所示第一电子设备运行目标应用后,监控第一电子设备中运行的目标进程占用第一内存的大小。

26、第四方面,本技术提供一种芯片系统,该芯片系统可以应用于包括存储器的电子设备。该芯片系统包括一个或多个接口电路和一个或多个处理器。该接口电路和处理器通过线路互联。该接口电路用于从上述存储器接收信号,并向处理器发送该信号,该信号包括存储器中存储的计算机指令。当处理器执行该计算机指令时,电子设备执行如第一方面及其任一种可能的设计方式的方法。

27、第五方面,本技术提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令。当计算机指令在电子设备上运行时,使得该电子设备执行如第一方面及其任一种可能的设计方式的方法。

28、第六方面,本技术提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如第一方面及其任一种可能的设计方式的方法。

29、可以理解地,上述第二方面的获取进程调用栈信息的系统、第三方面其任一种可能的设计方式的电子设备,第四方面的芯片系统,第五方面的计算机可读存储介质,第六方面的计算机程序产品所能达到的有益效果,可参考如第一方面及其任一种可能的设计方式中的有益效果,此处不再赘述。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1