- 简介我们提出了LeJit,一个基于模板的框架,用于测试Java即时编译器(JIT)。像最近的基于模板的框架一样,LeJit执行一个模板——一个带有空缺的程序——以生成具体的程序,作为输入提供给Java JIT编译器。LeJit通过将表达式转换为空缺来自动生成模板程序,同时生成必要的粘合代码(即生成非原始类型实例的代码),以使生成的模板可执行。我们已经成功地使用LeJit测试了一系列流行的Java JIT编译器,在HotSpot中发现了5个错误,在OpenJ9中发现了9个错误,在GraalVM中发现了1个错误。所有这些错误都已被Oracle和IBM的开发人员确认,其中11个错误以前是未知的,包括两个CVE(公共漏洞和曝光)。我们与几种现有方法的比较表明,LeJit是它们的补充,是确保Java JIT编译器正确性的强大技术。
- 图表
- 解决问题LeJit: 一个用于测试Java JIT编译器的模板框架
- 关键思路使用模板程序自动生成具体程序,测试Java JIT编译器的正确性
- 其它亮点LeJit成功测试了多个流行的Java JIT编译器,并发现了多个未知的漏洞,包括两个CVE;LeJit是一种强大的Java JIT编译器测试技术,与现有方法互补
- 与LeJit相关的研究包括:Template-based JIT Compiler Testing with Synthesized Benchmarks,JitFinder:Identifying Performance Problems in Modern Java Applications,Automated Testing of Just-In-Time Compilers
沙发等你来抢
去评论
评论
沙发等你来抢