skip to main content
10.1145/2002962.2002967acmconferencesArticle/Chapter ViewAbstractPublication PagesisstaConference Proceedingsconference-collections
research-article

Java replay for dependence-based debugging

Published:17 July 2011Publication History

ABSTRACT

In this article, we present a system intended to help students understand and debug concurrent Java programs. The system instruments Java classes to produce execution traces. These traces can then be used to construct a dynamic dependence graph showing the interactions between the different operations performed in the program. These interactions are used as the basis for an interactive visualisation that can be used to explore the execution of a program and trace incorrect program behaviour back from a symptom to the execution of incorrect code.

References

  1. H. Agrawal, R. A. DeMillo, and E. H. Spafford. Dynamic slicing in the presence of unconstrained pointers. In TAV4: Proceedings of the symposium on Testing, analysis, and verification, pages 60--73, New York, NY, USA, 1991. ACM. ISBN 0-89791-449-X. doi: http://doi.acm.org/10.1145/120807.120813. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. G. Brat, D. Drusinsky, D. Giannakopoulou, A. Goldberg, K. Havelund, M. Lowry, C. Pasareanu, A. Venet, W. Visser, and R. Washington. Experimental evaluation of verification and validation tools on Martian Rover software. Formal Methods in System Design, 25(2--3):167--198, 2004. doi: http://dx.doi.org/10.1023/B:FORM.0000040027.28662.a4. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. J. Callaway. Visualization of threads in a running Java program. Master's thesis, University of California, June 2002.Google ScholarGoogle Scholar
  4. J.-D. Choi, B. Alpern, T. Ngo, M. Sridharan, and J. Vlissides. A perturbation-free replay platform for cross-optimized multithreaded applications. In Proceedings of the 15th International Parallel and Distributed Processing Symposium, San Fransisco, USA, Apr. 2001. IEEE Computer Society. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. M. Dahm. Byte code engineering with the BCEL API. Technical Report B-17-98, Institut für Informatik, Freie Universität Berlin, Apr. 2001.Google ScholarGoogle Scholar
  6. G. Di Battista, P. Eades, R. Tamassia, and I. Tollis. Graph Drawing: Algorithms for the Visualization of Graphs. Prentice Hall, Upper Saddle River, NJ, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. D. Drusinsky. The Temporal Rover and the ATG Rover. In Proceedings of the 7th International SPIN Workshop on SPIN Model Checking and Software Verification, pages 323--330. Springer-Verlag, 2000. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. M. Eisenstadt. My hairiest bug war stories. Communications of the ACM, 40(4):30--37, 1997. ISSN 0001-0782. doi: http://doi.acm.org/10.1145/248448.248456. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. S. Fitzgerald, G. Lewandowski, R. McCauley, L. Murphy, B. Simon, L. Thomas, and C. Zander. Debugging: Finding, fixing and flailing, a multi-institutional study of novice debuggers. Computer Science Education, 18(2):93--116, June 2008.Google ScholarGoogle ScholarCross RefCross Ref
  10. A. Georges, M. Christiaens, M. Ronsse, and K. De Bosschere. JaRec: a portable record/replay environment for multi-threaded Java applications. Software --- Practice and Experience, 34(6):523--547, May 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. J. Gosling, B. Joy, G. Steele, and G. Bracha. The Java Language Specification. Sun Microsystems, third edition, 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. K. Havelund and G. Roşu. An overview of the runtime verification tool Java PathExplorer. Formal Methods in System Design, 24(2):189--215, 2004. doi: http://dx.doi.org/10.1023/B:FORM.0000017721.39909.4b. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. G. Holzmann. The model checker Spin. IEEE Trans. on Software Engineering, 23(5):279--295, May 1997. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. A. J. Ko and B. A. Myers. Designing the Whyline: a debugging interface for asking questions about program behavior. In CHI '04: Proceedings of the 2004 conference on Human factors in computing systems, pages 151--158. ACM Press, 2004. ISBN 1-58113-702-8. doi: http://doi.acm.org/10.1145/985692.985712. Google ScholarGoogle ScholarDigital LibraryDigital Library
  15. B. Lewis. Debugging backwards in time. In M. Ronsse, editor, Proceedings of the Fifth International Workshop on Automated Debugging, Ghent, Belgium, Sept. 2003.Google ScholarGoogle Scholar
  16. K.-P. Löhr and A. Vratislavsky. JAN - Java animation for program understanding. In 2003 IEEE Symposium on Human Centric Computing Languages and Environments (HCC 2003), pages 67--75, Oct. 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. J. Lönnberg. Defects in concurrent programming assignments. In A. Pears and C. Schulte, editors, Proceedings of the Ninth Koli Calling International Conference on Computing Education Research (Koli Calling 2009), pages 11--20, Koli, Finland, 2009. Uppsala University.Google ScholarGoogle Scholar
  18. J. Lönnberg and A. Berglund. Students' understandings of concurrent programming. In R. Lister and Simon, editors, Proceedings of the Seventh Baltic Sea Conference on Computing Education Research (Koli Calling 2007), volume 88 of Conferences in Research and Practice in Information Technology, pages 77--86, Koli, Finland, 2008. Australian Computer Society. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. J. Lönnberg, A. Korhonen, and L. Malmi. MVT --- a system for visual testing of software. In Proceedings of the Working Conference on Advanced Visual Interfaces (AVI'04), pages 385--388, May 2004. Google ScholarGoogle ScholarDigital LibraryDigital Library
  20. J. Lönnberg, A. Berglund, and L. Malmi. How students develop concurrent programs. In M. Hamilton and T. Clear, editors, Proceedings of the Eleventh Australasian Computing Education Conference (ACE2009), volume 95 of Conferences in Research and Practice in Information Technology, pages 129--138, Wellington, New Zealand, 2009. Australian Computer Society. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. J. Lönnberg, L. Malmi, and A. Berglund. Helping students debug concurrent programs. In A. Pears and L. Malmi, editors, Proceedings of the Eighth Koli Calling International Conference on Computing Education Research (Koli Calling 2008), pages 76--79, Koli, Finland, 2009. Uppsala University. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. F. Mattern. Virtual time and global states of distributed systems. In Proceedings of the International Workshop on Parallel and Distributed Algorithms, pages 215--226, Chateau de Bonas, France, Oct. 1988. Elsevier.Google ScholarGoogle Scholar
  23. K. Mehner. JaVis: A UML-based visualization and debugging environment for concurrent Java programs. In S. Diehl, editor, Software Visualization, pages 163--175, Dagstuhl Castle, Germany, 2002. Springer-Verlag. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. D. Mohapatra, R. Mall, and R. Kumar. An efficient technique for dynamic slicing of concurrent Java programs. In S. Manandhar, J. Austin, U. Desai, Y. Oyanagi, and A. Talukder, editors, Applied Computing --- Proceedings of the Second Asian Applied Computing Conference (AACC 2004), volume 3285 of Lecture Notes in Computer Science (LNCS), pages 255--262. Springer, 2004.Google ScholarGoogle Scholar
  25. R. Oechsle and T. Schmitt. JAVAVIS: Automatic program visualization with object and sequence diagrams using the Java Debug Interface (JDI). In S. Diehl, editor, Software Visualization, pages 176--190, Dagstuhl Castle, Germany, 2002. Springer-Verlag. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Robby, M. B. Dwyer, and J. Hatcliff. Bogor: A flexible framework for creating software model checkers. In Proceedings of Testing: Academic & Industrial Conference --- Practice And Research Techniques, June 2006. Google ScholarGoogle ScholarDigital LibraryDigital Library
  27. N. Rutar, C. B. Almazan, and J. S. Foster. A comparison of bug finding tools for Java. In ISSRE '04: Proceedings of the 15th International Symposium on Software Reliability Engineering, pages 245--256, Washington, DC, USA, 2004. IEEE Computer Society. doi: http://dx.doi.org/10.1109/ISSRE.2004.1. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. V. Schuppan, M. Baur, and A. Biere. JVM independent replay in Java. In Proceedings of the Fourth Workshop on Runtime Verification (RV 2004), volume 113 of Electronic Notes in Theoretical Computer Science, pages 85--104. Elsevier, Jan. 2005. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. S. D. Stoller. Testing concurrent Java programs using randomized scheduling. In Proceedings of Second Workshop on Runtime Verification (RV), volume 70(4) of Electronic Notes in Theoretical Computer Science. Elsevier, July 2002.Google ScholarGoogle Scholar
  30. W. Visser, K. Havelund, G. Brat, S. Park, and F. Lerda. Model checking programs. Automated Software Engineering Journal, 10(2):203--232, Apr. 2003. Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. A. von Mayrhauser and A. M. Vans. Program understanding behavior during debugging of large scale software. In ESP '97: Papers presented at the seventh workshop on Empirical studies of programmers, pages 157--179, New York, NY, USA, 1997. ACM Press. doi: http://doi.acm.org/10.1145/266399.266414. Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. M. Weiser. Program slicing. In ICSE '81: Proceedings of the 5th international conference on Software engineering, pages 439--449, Piscataway, NJ, USA, 1981. IEEE Press. Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. M. Weiser. Programmers use slices when debugging. Communications of the ACM, 25(7):446--452, July 1982. Google ScholarGoogle ScholarDigital LibraryDigital Library
  34. A. Zeller. Animating data structures in DDD. In The proceedings of the First Program Visualization Workshop --- PVW 2000, pages 69--78, Porvoo, Finland, 2001. University of Joensuu.Google ScholarGoogle Scholar
  35. J. Zhao. Dynamic slicing of object-oriented programs. In Technical Report SE-98-119, pages 17--23. Information Processing Society of Japan, May 1998.Google ScholarGoogle Scholar
  36. J. Zhao. Multithreaded dependence graphs for concurrent Java programs. In In Proceedings of 1999 International Symposium on Software Engineering for Parallel and Distributed Systems, pages 13--23. IEEE Computer Society, 1999. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Java replay for dependence-based debugging

          Recommendations

          Comments

          Login options

          Check if you have access through your login credentials or your institution to get full access on this article.

          Sign in
          • Published in

            cover image ACM Conferences
            PADTAD '11: Proceedings of the Workshop on Parallel and Distributed Systems: Testing, Analysis, and Debugging
            July 2011
            66 pages
            ISBN:9781450308090
            DOI:10.1145/2002962

            Copyright © 2011 ACM

            Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

            Publisher

            Association for Computing Machinery

            New York, NY, United States

            Publication History

            • Published: 17 July 2011

            Permissions

            Request permissions about this article.

            Request Permissions

            Check for updates

            Qualifiers

            • research-article

            Upcoming Conference

            ISSTA '24

          PDF Format

          View or Download as a PDF file.

          PDF

          eReader

          View online with eReader.

          eReader