[发明专利]一种基于硬件的高级程序动态控制流追踪方法和装置有效
申请号: | 202110253236.6 | 申请日: | 2021-03-09 |
公开(公告)号: | CN112905474B | 公开(公告)日: | 2022-04-22 |
发明(设计)人: | 左志强;吉凯;王乙飞;陶威;王林章;李宣东 | 申请(专利权)人: | 南京大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F9/455 |
代理公司: | 江苏银创律师事务所 32242 | 代理人: | 孙计良 |
地址: | 210001 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 硬件 高级 程序 动态控制 追踪 方法 装置 | ||
本发明公开了一种基于硬件的高级程序动态控制流追踪方法和装置。该方法对待追踪程序静态分析,生成控制流图、类继承图和调用图,通过虚拟机执行待追踪程序收集字节码指令模版、执行信息和追踪数据。然后按照线程对追踪数据进行解码匹配,对照控制流图生成相应的执行流图,最后判断是否存在执行流数据是否存在缺失,如果是,则尽可能还原出执行流图,恢复其中缺失的部分,最终输出执行流图。本发明实现了利用硬件追踪模块对高级语言程序的控制流追踪,并且通过执行流数据的补缺分析处理,解决硬件输出追踪数据和磁盘存储速度不一致的问题。
技术领域
本发明涉及基于硬件的高级程序执行的动态控制流追踪。
背景技术
现代CPU大多配备了硬件追踪模块,比如Intel Processor Trace (PT)和ARMEmbedded TraceMacrocell (ETM),这些模块提供了高效率的控制流追踪能力。而控制流追踪技术在广泛的软件工程活动中发挥着重要的作用,包括测试、调试、性能分析等。比如我们获取了某个程序完整的控制流追踪信息,那么各种各样的执行信息如方法和语句覆盖、路径覆盖和调用信息都可以轻而易举的计算出。
现有的追踪技术主要包括两类:软件追踪和硬件追踪。软件追踪通常会对用户源代码进行插桩,通常依赖于编译器架构并且具有高昂的运行开销。硬件追踪相较于软件追踪,利用硬件追踪模块,具有更小的运行开销和通用性,并且不需要对源代码进行插桩修改。
到目前为止,基于硬件的追踪仅仅应用于可以直接运行在硬件上的本地程序。这是因为处理器只能处理硬件指令,而对本地程序而言,这些指令可以在源代码编译中产生的编译调试信息的帮助下轻松映射回源代码。但是随着诸如Java,Go和Scala之类的高级语言在现代计算中起到日益重要的作用,迫切地需要对硬件模块进行扩展,使其能够为高级语言提供高效率的控制流追踪。
利用硬件追踪高级语言程序存在着巨大的挑战,主要是由高级语言运行时的复杂性导致的。例如执行Java程序的Java虚拟机(JVM),它在解释执行和JIT(JustinTime)编译执行之间切换:JVM开始为解释执行,当一段代码或者方法变为热点代码或方法时,切换到JIT编译模式,直接执行编译过的代码。同时,对于这类高级语言,CPU实际执行的指令与用户高级语言代码存在巨大差距,这不仅体现在机器码与字节码上的结构化差异上,还体现在不同编译策略下产生的代码的不同。比如在JVM中解释执行直接利用模版生成代码,而JIT编译会对编译的代码进行多次优化。更麻烦的是运行时可能在代码中插入各种检查代码(比如读写障碍和边界检查),导致开发者所写的代码和实际CPU执行的存在巨大结构差异。
发明内容
本发明所要解决的问题:对基于解释执行的高级语言程序实现硬件追踪。
为解决上述问题,本发明采用的方案如下:
根据本发明的一种基于硬件的高级程序动态控制流追踪方法,包括如下步骤:
S1:获取待追踪的程序;
S2:对所述待追踪的程序进行静态分析,生成控制流图、类继承图和调用关系图;
S3:收集通过虚拟机执行所述待追踪的程序时的字节码指令模版、执行信息和追踪数据;
S4:根据所生成的控制流图和所收集的字节码指令模版、追踪数据和执行信息,生成执行流图;
S5:输出所述的执行流图;
其中,所述步骤S3包括如下步骤:
S31:启动虚拟机,然后对所启动的虚拟机进程进行处理器硬件追踪的初始化,使得处理器硬件追踪虚拟机进程得到的处理器控制流的追踪数据能够输至指定的追踪数据缓冲区,并由追踪数据转存模块将所述追踪数据缓冲区中的追踪数据转存至磁盘中;
S32:当虚拟机进程对待追踪的程序初始化时,导出字节码指令模版;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110253236.6/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种可使无人机受风时更加稳定的小型推进器
- 下一篇:一种光催化净化空气净化器