Abstract:The multi-core and concurrency technology are widely used today. How to debug concurrent programs effectively becomes an important topic. Due to nondeterministic and complex behavior of the concurrent program, traditional debugging techniques are inappropriate to apply. In bug-reports-oriented debugging scenarios, the separation of error detection and error debugging processes makes the failures more difficult to reproduce, which exacerbates the difficulty of debugging. For bug-report-oriented debugging scenarios, this paper proposes a method to visualize program behaviors to assist programmers to debug manually. The method reasons concurrent program behavior through static analysis, giving a global view to programmers to help them observe the behavior of the program and guiding their attention on suspicious operation. This approach can avoid the cost of reproducing concurrent failures. With the information in the bug report as well as the feature of the event structure model, it eliminates the state explosion problem that may arise during static analysis of concurrent programs. A prototype of interactive debugging tool for Java called JESVis Debugger, is developed as an initial realization of the proposed method.