Skip to main content

Program Visualization for Debugging Deadlocks in Multithreaded Programs

  • Conference paper
Advances in Software Engineering (ASEA 2010)

Part of the book series: Communications in Computer and Information Science ((CCIS,volume 117))

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).

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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)

    Chapter  Google Scholar 

  2. 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)

    Chapter  Google Scholar 

  3. 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)

    Chapter  Google Scholar 

  4. Kraemer, E.: Visualizing concurrent programs. In: Software Visualization: Programming as a Multimedia Experience, pp. 237–258 (January 1998)

    Google Scholar 

  5. Diehl, S.: Software Visualization: Visualizing the Structure, Behavior, and Evolve of Software. Springer, Heidelberg (May 2007)

    MATH  Google Scholar 

  6. Lamport, L.: Time, clocks, and the ordering of events in a distributed system. Communications of the ACM 21(7), 558–565 (1978)

    Article  MATH  Google Scholar 

  7. 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)

    Chapter  Google Scholar 

  8. 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)

    Chapter  Google Scholar 

  9. 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)

    Chapter  Google Scholar 

  10. 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)

    Google Scholar 

  11. 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)

    Chapter  Google Scholar 

  12. 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)

    Google Scholar 

  13. Carr, S., Mayo, J., Shene, C.K.: Threadmentor: a pedagogical tool for multithreaded programming. J. Educ. Resour. Comput. 3(1), 1 (2003)

    Article  Google Scholar 

  14. 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)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics