Visual debugging of multithreaded Java programs


Short paper introduces the application of PEGs to Java programs.


  • Introduces the idea of the "Parallel Execution Graph" (PEG)
  • Focuses on visualizing parallel information
  • Check out Mehner "Visualizing the Synchronization of Java Threads with UML," IEEE Symp. on Visual Languages 2000
  • Visualizes threads as parallel horizontal timelines. Accesses to objects are visualized as they occur in relative time
  • Alternatively, the perspective can be shifted to the object level, and accesses to a particular object can be viewed in sequence.

BibTeX Reference

title={Visual debugging of multithreaded Java programs}, 
author={Jackson, D.}, 
journal={Human-Centric Computing Languages and Environments, 2001. Proceedings IEEE Symposia on}, 
abstract={Debugging of parallel programs is essentially a twofold task, since it involves debugging both the internal logic of the processes and the interactions between those processes. For the most part, the former can be tackled using conventional sequential debuggers, but the latter are more problematical. It is contended that visualization techniques can be invaluable in this regard, and to this end the concept of a Parallel Execution Graph (PEG) has been devised. For the Java language, which places much of the burden of thread synchronization on the shoulders of the programmer, execution visualization via a PEG can give enormous insight into program behavior, and can highlight hazards such as indeterminacy and deadlock. Among the other advantages to be gained from the use of PEGs are fine control over what information to include in a graph, and the ability to focus on relevant events via a viewpoint switching mechanism}, 
keywords={Java, multi-threading, object-oriented programming, parallel programming, program debugging, program visualisationPEG, Parallel Execution Graph, deadlock, indeterminacy, multithreaded Java programs, parallel program debugging, thread synchronization, viewpoint switching, visual debugging, visualization techniques}, 
ISSN={}, }
Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License