Cross-ISA Debugging in Meta-circular VMs

Christos Kotselidis, Andy Nisbet, Foivos Zakkak, Nikols Foutris

Research output: Contribution to conferencePaperpeer-review

353 Downloads (Pure)

Abstract

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.
Original languageEnglish
Publication statusAccepted/In press - 6 Oct 2017
EventSystems, Programming, Languages and Applications: Software for Humanity - Hyatt Regency, Vancouver, Canada
Duration: 22 Oct 201727 Oct 2017

Conference

ConferenceSystems, Programming, Languages and Applications
Abbreviated titleSPLASH 2017
Country/TerritoryCanada
CityVancouver
Period22/10/1727/10/17

Keywords

  • just-in-time compilation
  • debug
  • cross-isa
  • qemu
  • maxine vm
  • metacircular

Fingerprint

Dive into the research topics of 'Cross-ISA Debugging in Meta-circular VMs'. Together they form a unique fingerprint.

Cite this