Skip to main navigation Skip to search Skip to main content

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

Research output: Thesis › Master's / Diploma thesis

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.
Original languageEnglish
QualificationMaster
Awarding Institution
  • Faculty of Engineering & Natural Sciences
Supervisors/Reviewers
  • Prähofer, Herbert, Supervisor
  • Weninger, Markus, Co-supervisor
Award date29 Jun 2026
Publication statusPublished - Jun 2026

Fields of science

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

JKU Focus areas

  • Digital Transformation

Cite this