使用硬件辅助调用路径签名生成器进行调用栈分析制造技术

技术编号:42295588 阅读:20 留言:0更新日期:2024-08-14 15:45
本公开的方面涉及计算和维护支持快速在线栈解卷的栈调用签名。对每个采样帧进行系统维护和更新单独的调用路径签名,而不是采样和解卷栈帧。所述调用路径签名对构成调用路径的帧的栈的每个帧的内容进行编码。自下而上地维护和处理调用路径“汇总”栈,以重新创建与采样帧对应的全栈。

【技术实现步骤摘要】


技术介绍

1、调用栈是存储关于计算机软件执行信息的数据结构。软件包括具有多个子程序的程序-也称为方法或函数等。执行软件的系统维护和更新调用栈中的返回地址以确保软件按正确的顺序执行。调用栈由调用栈帧填充。调用栈帧可以存储与执行各个函数或子程序对应的变量、参数,或其他临时值。调用栈帧包括返回地址,该返回地址指向调用函数的调用指令之后的指令。调用栈分析器检查调用栈以生成用于计算机程序的分析。分析能够用于改善计算机程序的执行和性能。

2、调用栈分析器可以在对应的软件执行的某个时刻对调用栈的部分或全部内容进行采样。调用栈分析器对调用栈进行采样所需的时间基于采集的样本数量和每个样本的平均调用栈深度而变化。帧的调用栈深度是指在程序执行进程中达到该帧对应的函数之前进行的调用次数。相比于较小的、不太复杂的程序,大型、复杂程序的调用栈需要日益增长地更多的时间来分析。此外,对于具有高平均调用栈深度和大量唯一调用路径的程序,分析器成功分析这些类型程序的所需的内存也会增加。


技术实现思路

1、本专利技术的各个方面涉及计算本文档来自技高网...

【技术保护点】

1.一种用于调用栈分析的系统,其特征在于,所述系统包括一个或多个处理器,所述一个或多个处理器被配置为:

2.根据权利要求1所述的系统,其特征在于,所述调用路径哈希值是使用所述各个调用栈帧的所述返回地址和在调用栈中通向所述各个调用栈帧的所述调用路径中的调用栈帧的返回地址生成的。

3.根据权利要求1所述的系统,其特征在于,所述一个或多个处理器被配置为为所述一个或多个排序的调用路径签名的每个签名生成所述调用栈,从具有最小调用栈深度的所述调用栈帧对应的调用路径签名开始。

4.根据权利要求1所述的系统,其特征在于,所述调用路径哈希值是使用哈希函数生成的,所述哈希...

【技术特征摘要】

1.一种用于调用栈分析的系统,其特征在于,所述系统包括一个或多个处理器,所述一个或多个处理器被配置为:

2.根据权利要求1所述的系统,其特征在于,所述调用路径哈希值是使用所述各个调用栈帧的所述返回地址和在调用栈中通向所述各个调用栈帧的所述调用路径中的调用栈帧的返回地址生成的。

3.根据权利要求1所述的系统,其特征在于,所述一个或多个处理器被配置为为所述一个或多个排序的调用路径签名的每个签名生成所述调用栈,从具有最小调用栈深度的所述调用栈帧对应的调用路径签名开始。

4.根据权利要求1所述的系统,其特征在于,所述调用路径哈希值是使用哈希函数生成的,所述哈希函数具有能够使用所述调用栈帧的返回地址解卷的特性。

5.根据权利要求1所述的系统,其特征在于,调用路径签名包括:

6.根据权利要求1所述的系统,其特征在于,在接收所述一个或多个调用路径签名时,所述一个或多个处理器被配置为在使用所述调用栈执行计算机程序期间采样所述一个或多个调用路径签名。

7.根据权利要求6所述的系统,其特征在于,所述一个或多个处理器被配置为在所述计算机程序执行期间或之后为所述一个或多个调用路径签名的每个签名生成所述调用栈。

8.根据权利要求1所述的系统,其特征在于,所述一个或多个调用路径签名单个存储为具有预定最大存储需求的值的元组。

9.根据权利要求1所述的系统,其特征在于,所述一个或多个调用路径签名是使用由影子栈维护的返回地址生成的,其中,影子栈是在硬件中维护的所述调用栈的副本。

10.一种用于调用栈分析的方法,其特征在于,包括:

11.根据权利要求10所述的方法,其特征在于,所述调...

【专利技术属性】
技术研发人员:康斯坦丁·谢列布良伊李欣亮阿列克谢·亚历山德罗夫
申请(专利权)人:谷歌有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1