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. 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.
Tue 24 OctDisplayed time zone: Tijuana, Baja California change
10:30 - 12:00 | |||
10:30 10mDay opening | Welcome to VMIL VMIL Adam Welc Huawei America Research Center | ||
10:40 40mTalk | Cross-ISA debugging in meta-circular VMs VMIL Christos Kotselidis The University of Manchester, Andrew Nisbet The University of Manchester, Foivos S. Zakkak , Nikos Foutris | ||
11:20 40mTalk | Accelerate JavaScript Applications by Cross-Compiling to WebAssembly VMIL |