Debugging Native Extensions of Dynamic Languages

Jacob Kreindl, Manuel Rigger, Hanspeter Mössenböck

Research output: Chapter in Book/Report/Conference proceedingConference proceedingspeer-review

Abstract

Many dynamic programming languages such as Ruby and Python enable developers to use so called native extensions, code imple- mented in typically statically compiled languages like C and C++. However, debuggers for these dynamic languages usually lack sup- port for also debugging these native extensions. GraalVM can ex- ecute 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.
Original languageEnglish
Title of host publicationProceeding ManLang '18 Proceedings of the 15th International Conference on Managed Languages & Runtimes Article No. 12
PublisherACM New York, NY, USA
Number of pages7
ISBN (Print)978-1-4503-6424-9
DOIs
Publication statusPublished - Sept 2018

Fields of science

  • 102 Computer Sciences
  • 102009 Computer simulation
  • 102011 Formal languages
  • 102013 Human-computer interaction
  • 102022 Software development
  • 102024 Usability research
  • 102029 Practical computer science

JKU Focus areas

  • Computation in Informatics and Mathematics
  • Engineering and Natural Sciences (in general)

Cite this