SEAug 2, 2018

Debugging Native Extensions of Dynamic Languages

arXiv:1808.00823v12 citations
Originality Incremental advance
AI Analysis

This solves debugging integration issues for developers using mixed-language environments like Ruby or Python with C/C++ extensions, though it is incremental as it builds on existing GraalVM and Sulong frameworks.

The paper tackled the problem of debugging native extensions in dynamic languages by adding source-level debugging support to Sulong within GraalVM, enabling developers to debug both dynamic language code and LLVM-based native extensions in a unified debugger.

Many dynamic programming languages such as Ruby and Python enable developers to use so called native extensions, code implemented in typically statically compiled languages like C and C++. However, debuggers for these dynamic languages usually lack support for also debugging these native extensions. GraalVM can execute programs implemented in various dynamic programming languages and, by using the LLVM-IR interpreter Sulong, also their native extensions. We added support for source-level debugging to Sulong based on GraalVM's debugging framework by associating run-time debug information from the LLVM-IR level to the original program code. As a result, developers can now use GraalVM to debug source code written in multiple LLVM-based programming languages as well as programs implemented in various dynamic languages that invoke it in a common debugger front-end.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes