Skip to main content

Hybrid Debugging of Java Programs

  • Conference paper
Software and Data Technologies (ICSOFT 2011)

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

Included in the following conference series:

Abstract

Until today the most common technique to debug Java programs is trace debugging. In this work we present two different debugging approaches for Java: declarative debugging, which has its origins in the area of functional and logic programming, and omniscient debugging, which is basically an extension of trace debugging. To benefit from the advantages of both techniques we have integrated them into a single hybrid debugger called JHyde. We use JHyde to debug an erroneous merge sort algorithm and mention important aspects of its implementation. Furthermore, we show that the efficiency of the declarative debugging method can be significantly improved by a new debugging strategy.

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. Hailpern, B., Santhanam, P.: Software debugging, testing, and verification. IBM Systems Journal 41, 4–12 (2002)

    Article  Google Scholar 

  2. Zeller, A.: How Failures Come to Be. In: Why Programs Fail: A Guide to Systematic Debugging, pp. 1–26. Morgan Kaufmann (2005)

    Google Scholar 

  3. Lewis, B.: Debugging Backwards in Time. CoRR cs.SE/0310016 (2003)

    Google Scholar 

  4. Shapiro, E.Y.: Algorithmic Program DeBugging. MIT Press (1983)

    Google Scholar 

  5. Nilsson, H.: How to look busy while being as lazy as ever: the Implementation of a lazy functional debugger. Journal of Functional Programming 11, 629–671 (2001)

    Article  MATH  Google Scholar 

  6. Caballero, R., Rodríguez-Artalejo, M.: A Declarative Debugging System for Lazy Functional Logic Programs. Electronic Notes in Theoretical Computer Science 64 (2002)

    Google Scholar 

  7. Caballero, R., Hermanns, C., Kuchen, H.: Algorithmic Debugging of Java Programs. Electronic Notes in Theoretical Computer Science 177, 75–89 (2007)

    Article  Google Scholar 

  8. Hermanns, C.: JHyde - Eclipse plugin (2011), http://www.wi.uni-muenster.de/pi/personal/hermanns.php

  9. Eclipse Foundation: Eclipse IDE (2011), http://www.eclipse.org/

  10. Pressman, R.S.: Software Engineering: A Practitioner’s Approach, 5th edn. McGrapw-Hill (2001)

    Google Scholar 

  11. Cormen, T.H., Leiserson, C.E., Rivest, R.L., Stein, C.: Introduction to Algorithms, 2nd edn. The MIT Press (2001)

    Google Scholar 

  12. Object Web: Asm (2011), http://asm.ow2.org/

  13. Gamma, E., Helm, R., Johnson, R., Vlissides, J.: Design Patterns. Addison-Wesley, Boston (1995)

    Google Scholar 

  14. Shahmehri, N., Fritzson, P.: Algorithmic Debugging for Imperative Languages with Side-Effects. In: Hammer, D. (ed.) CC 1990. LNCS, vol. 477, pp. 226–227. Springer, Heidelberg (1991)

    Chapter  Google Scholar 

  15. Fritzson, P., Shahmehri, N., Kamkar, M., Gyimothy, T.: Generalized algorithmic debugging and testing. ACM Letters on Programming Languages and Systems 1, 303–322 (1992)

    Article  Google Scholar 

  16. Girgis, H.Z., Jayaraman, B.: JavaDD: a Declarative Debugger for Java. Technical report, Department of Computer Science and Engineering, University at Buffalo (2006)

    Google Scholar 

  17. Kouh, H.-J., Kim, K.-T., Jo, S.-M., Yoo, W.-H.: Debugging of Java Programs Using HDT with Program Slicing. In: Laganá, A., Gavrilova, M.L., Kumar, V., Mun, Y., Tan, C.J.K., Gervasi, O. (eds.) ICCSA 2004. LNCS, vol. 3046, pp. 524–533. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  18. Silva, J.: A Comparative Study of Algorithmic Debugging Strategies. In: Puebla, G. (ed.) LOPSTR 2006. LNCS, vol. 4407, pp. 143–159. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2013 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Hermanns, C., Kuchen, H. (2013). Hybrid Debugging of Java Programs. In: Escalona, M.J., Cordeiro, J., Shishkov, B. (eds) Software and Data Technologies. ICSOFT 2011. Communications in Computer and Information Science, vol 303. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-36177-7_6

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-36177-7_6

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-36176-0

  • Online ISBN: 978-3-642-36177-7

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics