Zur Hauptnavigation wechseln Zur Suche wechseln Zum Hauptinhalt wechseln

A Visual Debugger for Multi-threaded Programs based on the Espresso Java VM

Publikation: Abschlussarbeiten › Master-/Diplomarbeit

Abstract

Multi-threading is an important programming concept in Java and is essential for developing efficient and scalable applications. However, understanding how multi-threaded programs work can be challenging for novice programmers, as program behavior depends on complex interactions between concurrently running threads.
To support programming novices in understanding multi-threading more easily, this thesis extends the educational visual debugger JavaWiz with support for multi-threaded Java programs. The primary goal is to enhance JavaWiz by incorporating multi-threading while preserving its interactive, step-by-step debugging approach. Instead of executing threads concurrently, the proposed solution allows users to take over parts of the scheduler’s role. This enables users to decide which thread
should execute next and to reproduce different execution scenarios in a controlled and predictable manner.
JavaWiz consists of a frontend and a backend component. The frontend comprises different visualizations for showing statement execution and program state changes. The existing visualizations of JavaWiz, including the sequence diagram, the stack and heap, the tabular view and the flowchart, were extended to distinguish between threads and visualize thread-related information.
The backend of JavaWiz comes in two versions, one based on the Java Debug Interface and one based on the GraalVM Espresso Virtual Machine. For the extensions presented in this thesis, the GraalVM Espresso backend has been used. In particular, it utilizes the GraalVM Truffle Debug API to collect information required for visualizations.
Finally, the developed system is demonstrated using a collection of application Examples taken from the course Praktikum aus Softwareentwicklung 2 at Johannes Kepler University Linz. These examples show that the extended JavaWiz is capable of visualizing the behavior of multi-threaded Java programs and has the potential to support teaching concurrent programming concepts at university level.
OriginalspracheEnglisch
QualifikationMaster/Diplom
Gradverleihende Hochschule
  • Technisch-Naturwissenschaftliche Fakultät
Betreuung / Begutachtung
  • Prähofer, Herbert, Betreuer*in
  • Weninger, Markus, Mitbetreuer*in
Datum der Bewilligung29 Juni 2026
PublikationsstatusVeröffentlicht - Juni 2026

Wissenschaftszweige

  • 102 Informatik
  • 102009 Computersimulation
  • 102013 Human-Computer Interaction
  • 102011 Formale Sprachen
  • 102022 Softwareentwicklung
  • 102029 Praktische Informatik
  • 102024 Usability Research

JKU-Schwerpunkte

  • Digital Transformation

Dieses zitieren