Fast, Flexible, Polyglot Instrumentation Support for Debuggers and other Tools
Michael Van De Vanter (Oracle Labs, United States), Chris Seaton, (Oracle Labs, United Kingdom), Michael Haupt (self, Germany), Christian Humer, (Oracle Labs, Switzerland), Thomas W\"urthinger (Oracle Labs, Switzerland)

TL;DR
This paper introduces a high-performance, flexible, language-agnostic instrumentation framework integrated into GraalVM, enabling dynamic, low-overhead debugging and analysis tools across multiple languages.
Contribution
It presents a novel, efficient instrumentation framework within Truffle and GraalVM that simplifies tool development and enhances performance for multi-language environments.
Findings
Enabled dynamic, thread-safe insertion of instrumentation probes
Achieved low overhead in optimized code until probes are accessed
Supported diverse tools and language features across multiple languages
Abstract
Context: Software development tools that interact with running programs such as debuggers, profilers, and dynamic analysis frameworks are presumed to demand difficult tradeoffs among implementation complexity (cost), functionality, usability, and performance. Among the many consequences, tools are often delivered late (if ever), have limited functionality, require non-standard configurations, and impose serious performance costs on running programs. Inquiry: Can flexible tool support become a practical, first class, intrinsic requirement for a modern highperformance programming language implementation framework? Approach: We extended the Truffle Language Implementation Framework, which together with the GraalVM execution environment makes possible very high performance language implementations. Truffle's new Instrumentation Framework is language-agnostic and designed to derive high…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
