English

Debugging Native Extensions of Dynamic Languages

Software Engineering 2018-08-03 v1

Abstract

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.

Keywords

Cite

@article{arxiv.1808.00823,
  title  = {Debugging Native Extensions of Dynamic Languages},
  author = {Jacob Kreindl and Manuel Rigger and Hanspeter Mössenböck},
  journal= {arXiv preprint arXiv:1808.00823},
  year   = {2018}
}

Comments

7 pages, 7 figures, accepted at 15th International Conference on Managed Languages & Runtimes (ManLang'18)