Partial orders for parallel debugging
PADD '88 Proceedings of the 1988 ACM SIGPLAN and SIGOPS workshop on Parallel and distributed debugging
ACM Computing Surveys (CSUR)
Time, clocks, and the ordering of events in a distributed system
Communications of the ACM
JaVis: A UML-Based Visualization and Debugging Environment for Concurrent Java Programs
Revised Lectures on Software Visualization, International Seminar
JACOT: a tool to dynamically visualise the execution of concurrent Java programs
PPPJ '03 Proceedings of the 2nd international conference on Principles and practice of programming in Java
ThreadMentor: a pedagogical tool for multithreaded programming
Journal on Educational Resources in Computing (JERIC)
Computer
Trials and Tribulations of Debugging Concurrency
Queue - RFID
Proceedings of the 2006 workshop on Parallel and distributed systems: testing and debugging
Software Visualization: Visualizing the Structure, Behaviour, and Evolution of Software
Software Visualization: Visualizing the Structure, Behaviour, and Evolution of Software
Visualization of Concurrent Program Executions
COMPSAC '07 Proceedings of the 31st Annual International Computer Software and Applications Conference - Volume 02
Detecting potential deadlocks with static analysis and run-time monitoring
HVC'05 Proceedings of the First Haifa international conference on Hardware and Software Verification and Testing
Dynamic deadlock analysis of multi-threaded programs
HVC'05 Proceedings of the First Haifa international conference on Hardware and Software Verification and Testing
Understanding complex multithreaded software systems by using trace visualization
Proceedings of the 5th international symposium on Software visualization
Flow sensitive-insensitive pointer analysis based memory safety for multithreaded programs
ICCSA'11 Proceedings of the 2011 international conference on Computational science and Its applications - Volume Part V
Hi-index | 0.00 |
It is important to analyze and identify potential deadlocks resident in multithreaded programs from a successful deadlock-free execution, because the nondeterministic nature of such programs may hide the errors during testing. Visualizing the runtime behaviors of locking operations makes it possible to debug such errors effectively, because it provides intuitive understanding of different feasible executions caused by nondeterminism. However, with previous visualization techniques, it is hard to capture alternate orders imposed by locks due to their representation of a partial-order over locking operations. This paper presents a novel graph, called lock-causality graph , which represents alternate orders over locking operations. A visualization tool implements the graph, and demonstrates its power using the classical dining-philosophers problem written in Java. The experiment result shows that the graph provides a simple but powerful representation of potential deadlocks in an execution instance not deadlocked.