Multithreaded Debugging Tool Based on Bytecode Instrumentation

ZHOU Yilei,YU Haibo,ZHONG Hao
DOI: https://doi.org/10.3969/j.issn.1000-3428.2016.11.014
2016-01-01
Abstract:During the evolution of software,the debugging of programs is an important and necessary process.For multithreaded programs,the interleaving and scheduling are non-deterministic.Different scheduling can give different results,so it is difficult for developers to debug a multithreaded program.Therefore,this paper analyzes the concurrency bugs in real projects,presents a new multithreaded debugging tool,and proposes the concept of sequence point.It designs the scheduling language for debugging,instruments the test programs in bytecode level,and makes threads schedule in a desired sequence.It implements a debugging plugin in Eclipse.Experimental results show that compared with existing tool IMunit,the tool reduces developers’workload and enhances two debugging scenarios.It has better availability.
What problem does this paper attempt to address?