Abstract
Debugging deadlocks in multithreaded programs is a notoriously difficult task. A key reason for this is to understand the high behavioral complexity resulting from the inherent nondeterminism of multithreaded programs. We present a novel visualization technique which abstracts the nested patterns of locks and represents the happens-before relation of the patterns. We implement the technique in a prototype tool for Java, and demonstrate its power using a number of multithreaded Java programs. The experimental result shows that this graph provides a simple yet powerful representation to reason about deadlocks in an execution instance.
This research was supported in part by the MKE (The Ministry of Knowledge Economy), Korea, under the ITRC (Information Technology Research Center) support program supervised by the NIPA (National IT Industry Promotion Agency), NIPA-2010-(C1090-1031-0007).
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Bensalem, S., Havelund, K.: Dynamic deadlock analysis of multi-threaded programs. In: Ur, S., Bin, E., Wolfsthal, Y. (eds.) HVC 2005. LNCS, vol. 3875, pp. 208–223. Springer, Heidelberg (2006)
Naik, M., Park, C.S., Sen, K., Gay, D.: Effective static deadlock detection. In: Proceedings of the 2009 IEEE 31st International Conference on Software Engineering (ICSE), pp. 386–396. IEEE Computer Society, Los Alamitos (May 2009)
Joshi, P., Park, C.S., Sen, K., Naik, M.: A randomized dynamic program analysis technique for detecting real deadlocks. In: Proceedings of the 2009 ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI 2009), pp. 110–120. ACM, New York (June 2009)
Kraemer, E.: Visualizing concurrent programs. In: Software Visualization: Programming as a Multimedia Experience, pp. 237–258 (January 1998)
Diehl, S.: Software Visualization: Visualizing the Structure, Behavior, and Evolve of Software. Springer, Heidelberg (May 2007)
Lamport, L.: Time, clocks, and the ordering of events in a distributed system. Communications of the ACM 21(7), 558–565 (1978)
Bensalem, S., Fernandez, J.C., Havelund, K., Mounier, L.: Confirmation of deadlock potentials detected by runtime analysis. In: Proceedings of the 2006 Workshop on Parallel and Distributed Systems: Testing and Debugging (PADTAD 2006), pp. 41–50. ACM, New York (2006)
Havelund, K.: Using runtime analysis to guide model checking of java programs. In: Havelund, K., Penix, J., Visser, W. (eds.) SPIN 2000. LNCS, vol. 1885, pp. 245–264. Springer, Heidelberg (2000)
Mehner, K.: Javis: A uml-based visualization and debugging environment for concurrent java programs. In: Diehl, S. (ed.) Dagstuhl Seminar 2001. LNCS, vol. 2269, pp. 163–175. Springer, Heidelberg (2002)
Leroux, H., Réquilé-Romanczuk, A., Mingins, C.: Jacot: a tool to dynamically visualise the execution of concurrent java programs. In: Proceedings of the 2nd International Conference on Principles and Practice of Programming in Java (PPPJ 2003), pp. 201–206. Computer Science Press, Inc., Rockville (2003)
Artho, C., Havelund, K., Honiden, S.: Visualization of concurrent program executions. In: Proceedings of the 31st Annual International Computer Software and Applications Conference (COMPSAC 2007), pp. 541–546. IEEE Computer Society, Los Alamitos (July 2007)
Zhao, Q.A., Stasko, J.T.: Visualizing the execution of threads-based parallel programs. Technical Report GIT-GVU-95-01, College of Computing, George Institute of Technology (January 1995)
Carr, S., Mayo, J., Shene, C.K.: Threadmentor: a pedagogical tool for multithreaded programming. J. Educ. Resour. Comput. 3(1), 1 (2003)
Kim, B.C., Jun, S.W., Hwang, D.J., Jun, Y.K.: Visualizing potential deadlocks in multithreaded programs. In: Malyshkin, V. (ed.) PaCT 2009. LNCS, vol. 5698, pp. 321–330. Springer, Heidelberg (2009)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Kim, BC., Jun, YK. (2010). Program Visualization for Debugging Deadlocks in Multithreaded Programs. In: Kim, Th., Kim, HK., Khan, M.K., Kiumi, A., Fang, Wc., Ślęzak, D. (eds) Advances in Software Engineering. ASEA 2010. Communications in Computer and Information Science, vol 117. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-17578-7_23
Download citation
DOI: https://doi.org/10.1007/978-3-642-17578-7_23
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-17577-0
Online ISBN: 978-3-642-17578-7
eBook Packages: Computer ScienceComputer Science (R0)