[发明专利]用于标识调用栈中的不正确信息的技术在审
申请号: | 201880084073.X | 申请日: | 2018-02-15 |
公开(公告)号: | CN111566624A | 公开(公告)日: | 2020-08-21 |
发明(设计)人: | V·斯洛博德斯科耶;A·伊萨科夫 | 申请(专利权)人: | 英特尔公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F11/07;G06F11/34 |
代理公司: | 上海专利商标事务所有限公司 31100 | 代理人: | 黄嵩泉;何焜 |
地址: | 美国加利*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 用于 标识 调用 中的 不正确 信息 技术 | ||
公开了用于获得用于二进制代码的调用栈、并且用于确定用于二进制代码的基本指令块的实施例,其中调用栈包括帧的序列,而每个帧具有用于调用指令的“来自”地址和“去往”地址,其中每个基本指令块具有一个或多个指令。进一步地,实施例包括遍历调用栈以基于存在于来自/去往地址对的“来自”地址与“去往”地址之间的控制流路由来使顺序帧的来自/去往地址对生效,其中每个来自/去往地址对具有帧的“来自”地址和在调用栈上紧邻的前一帧的“去往”地址。
技术领域
本文描述的实施例包括用于标识调用栈中的不正确信息并执行校正以去除不正确信息的技术。
背景技术
随着技术的进步,计算机系统包括可包括一个或多个核的更大数量的处理器,例如,可同时执行多个线程的多核处理器。系统中日益增加的核和逻辑处理器的数量使得更多软件线程能够被执行。尽管该趋势以增加的处理能力和计算能力的形式使用户受益,但由于复杂性增加,可能出现困难。存在用于标识关键性能代码段(热点功能)以使开发人员能够微调代码并提高处理性能的各种工具。一个此类工具包括收集调用栈以公开分析的应用流。但是,当前的解决方案无法解决可能提供错误和不可靠的基于硬件的调用栈(其中多个线程共享一个处理器核)的操作系统上下文切换。
附图说明
图1图示出计算系统的示例。
图2A图示出第一逻辑流程的示例。
图2B图示出第二逻辑流程的示例。
图2C图示出第三逻辑流程的示例。
图3图示出处理流程图的示例。
图4图示出调用栈的示例。
图5A图示出控制流路由的第一示例。
图5B图示出控制流路由的第二示例。
图5C图示出控制流路由的第三示例。
图5D图示出基本指令块的函数范围的示例。
图6图示出计算架构的示例实施例。
具体实施方式
通常各实施例针对使软件开发人员能够更准确地标识热点功能,同时考虑到可能提供错误和不可靠的调用栈(其中多个线程共享一个处理器核)的操作系统上下文切换。实施例包括使用对在进程的执行期间收集的二进制代码的静态分析来确定在去往/来自地址对之间是否存在执行路径。更具体地,从前一帧的“去往”地址至当前地址的“来自”地址的控制流路由应始终可在有效的调用栈中进行跟踪。因此,如果无法跟踪去往/来自地址对之间的控制流路由,则开发人员和本文所讨论的系统可以确定调用栈包括不正确的信息并采取缓解措施,例如,通知开发人员并从调用栈移除包括“去往”地址的帧和后续数帧以供重构。
此外,实施例包括获得用于在进程(例如,收集一个或多个调用函数的性能数据的进程)中执行的二进制代码的调用栈,其中该调用栈包括多个帧,并且每个帧包括调用指令的“来自”地址和“去往”地址。系统可以确定用于二进制代码的基本指令块,其中每个基本指令块包括一个或多个指令,并且每个基本指令块基于来自/去往地址对的“来自”地址与“去往”地址之间存在的控制流路由来遍历调用栈以使顺序帧的来自/去往地址对生效。在以下描述中,这些以及其他细节将变得更加明显。
现在将参考附图,自始至终相同的附图标记用于指相同的要素。在以下描述中,出于解释的目的,阐述了许多具体的细节以便提供对其的透彻理解。然而,可能显而易见的是,可以在不具有这些具体细节的情况下实施新颖的实施例。在其他情况下,以框图形式示出众所周知的结构和设备,以便有助于其说明。意图在于覆盖与所要求保护的主题一致的所有修改、等效方案和替代方案。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于英特尔公司,未经英特尔公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201880084073.X/2.html,转载请声明来源钻瓜专利网。
- 上一篇:太阳能利用设备
- 下一篇:负载传感器及负载传感器一体式多轴执行器