Design of PIN-Augmented Debugger for Multi-threaded Applications

The concurrent nature of multi-threaded program often leads to bugs like datarace, deadlock, livelock and starvation. Popular debuggers like Unix GNU debugger (GDB), Mac OS X debugger (LLDB), INTEL debugger (IDB) provide many features to debug a single threaded program but the features dealing with debugging concurrency are limited in case of multi-threaded programs. And also the developers have to use command prompt in order to debug the programs. In this paper, we have designed an algorithm for detecting deadlock during execution of multi-threaded programs by augmenting the GDB and LLDB with INTEL PIN [1], with an additional support that the algorithm will work on the application binaries that are designed using different thread models like PTHREAD, BOOST and INTEL’s TBB. We then also make this deadlock detection algorithm available to the developers by integrating it with Eclipse IDE.