Multithreaded programming is becoming a mainstream programming practice, while multithreaded programming is difficult and error prone. jpf-trace-server, an extension of Java PathFinder (JPF), can store and analyze traces. The error traces caused by deadlock can also be viewed in a new shell panel from jpf-shell.
In this project, we will develop jpf-trace-server to trace the execution of the threads and to provide feedback to the programmer to help them fix the bugs. Inspired by previous work on visualization in JPF, we would like to show the thread interleavings as traces in a new panel of jpf-shell. We would like to show the source code in the panel along with the transition information. The users should be able to walk through each transition of a selected error trace and the corresponding source code where it is executed.