MKtrace: An Innovative Debugging Tool for Multi-Threaded Programs on Multiprocessor Systems

In this paper, we propose an innovative debugging tool called MKtrace to help programmers identify bugs in multi-threaded programs on multiprocessor systems with little overhead. Unlike the traditional debugging tools, we use the trace log to analyze the cause of a crash or any abnormal behaviour. Bugs can be identified within the log file, not directly at run time. Also, a key advantage of MKtrace is its insignificant overhead. The main idea of MKtrace is to monitor all the processes or threads from a program when they switch out in the kernel. We log the call stack of each thread, and then we analyze the log in the user space. We implemented MKtrace on Linux AS3 with two processors and achieved promising results during our experiments.

[1]  Richard H. Carver,et al.  Debugging Concurrent Ada Programs by Deterministic Execution , 1991, IEEE Trans. Software Eng..

[2]  Mark A. Linton,et al.  Supporting reverse execution for parallel programs , 1988, PADD '88.

[3]  Richard H. Carver,et al.  Reproducible Testing of Concurrent Programs Based on Shared Variables , 1986, ICDCS.

[4]  K. Rustan M. Leino,et al.  Extended static checking , 1998, PROCOMET.

[5]  Michael Burrows,et al.  Eraser: a dynamic data race detector for multithreaded programs , 1997, TOCS.

[6]  Ahmed K. Elmagarmid,et al.  A survey of distributed deadlock detection algorithms , 1986, SGMD.

[7]  Koen De Bosschere,et al.  Execution Replay and Debugging of Distributed Multi-threaded Parallel Programs , 2000, Comput. Artif. Intell..

[8]  Koen De Bosschere,et al.  Execution replay and debugging , 2000, AADEBUG.

[9]  Weibo Gong,et al.  Anomaly detection using call stack information , 2003, 2003 Symposium on Security and Privacy, 2003..

[10]  Peter A. Buhr,et al.  KDB: a multi-threaded debugger for multi-threaded applications , 1996, SPDT '96.

[11]  Richard N. Taylor Debugging real-time software in a host-target environment , 1984 .

[12]  Nick Feamster,et al.  Detecting BGP configuration faults with static analysis , 2005 .

[13]  Thomas J. LeBlanc,et al.  Debugging Parallel Programs with Instant Replay , 1987, IEEE Transactions on Computers.

[14]  Eitan Farchi,et al.  Concurrent bug patterns and how to test them , 2003, Proceedings International Parallel and Distributed Processing Symposium.

[15]  Charles E. McDowell,et al.  Debugging concurrent programs , 1989, CSUR.

[16]  Sougata Mukherjea,et al.  Applying algorithm animation techniques for program tracing, debugging, and understanding , 1993, Proceedings of 1993 15th International Conference on Software Engineering.

[17]  David A. Wagner,et al.  Intrusion detection via static analysis , 2001, Proceedings 2001 IEEE Symposium on Security and Privacy. S&P 2001.