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.Comment: 7 pages, 7 figures, accepted at 15th International Conference on
Managed Languages & Runtimes (ManLang'18