Cross-ISA debugging in meta-circular VMs

Cross-ISA debugging in meta-circular VMs
复制标题

元循环虚拟机中的跨 ISA 调试

DOI:
--
复制
发表时间:
2017
期刊:
VMIL@SPLASH
影响因子:
--
通讯作者:
N. Foutris
N. Foutris
中科院分区:
--
文献类型:
--
作者:
Christos Kotselidis;A. Nisbet;Foivos S. Zakkak;N. Foutris

文献摘要

被引文献

相似文献

将当前的虚拟机实现扩展到新的指令集架构需要大量的编程和调试工作。元循环VM为此目的增加了另一个复杂性级别,因为它们必须使用正在扩展的相同编译器编译自己。因此,拥有低级调试工具对于减少开发时间和引入错误至关重要。在本文中,我们描述了我们的经验,在扩展Maxine VM的ARMv7架构。在此过程中,我们开发了一个基于QEMU的工具链,使我们能够以自动化的方式调试各种VM功能。所提出的工具链已与Maxine VM的JUNIT测试框架集成,能够执行从简单的汇编指令到完全JIT编译的代码。此外,它是完全开源的,可以无缝地适应任何其他VM。最后,我们描述了一种编译器辅助的方法,它可以帮助我们在运行时以自动且快速的方式识别不生成堆栈跟踪的错误方法。
Extending current Virtual Machine implementations to new Instruction Set Architectures entails a significant programming and debugging effort. Meta-circular VMs add another level of complexity towards this aim since they have to compile themselves with the same compiler that is being extended. Therefore, having low-level debugging tools is of vital importance in decreasing development time and bugs introduced. In this paper we describe our experiences in extending Maxine VM to the ARMv7 architecture. During that process, we developed a QEMU-based toolchain which enables us to debug a wide range of VM features in an automated way. The presented toolchain has been integrated with the JUNIT testing framework of Maxine VM and is capable of executing from simple assembly instructions to fully JIT compiled code. Furthermore, it is fully open-sourced and can be adapted to any other VMs seamlessly. Finally, we describe a compiler-assisted methodology that helps us identify, at runtime, faulty methods that generate no stack traces, in an automatic and fast manner.