Skip to main content

The Moldable Debugger: A Framework for Developing Domain-Specific Debuggers

  • Conference paper
Software Language Engineering (SLE 2014)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 8706))

Included in the following conference series:

  • 1242 Accesses

Abstract

Debuggers are crucial tools for developing object-oriented software systems as they give developers direct access to the running systems. Nevertheless, traditional debuggers rely on generic mechanisms to explore and exhibit the execution stack and system state, while developers reason about and formulate domain-specific questions using concepts and abstractions from their application domains. This creates an abstraction gap between the debugging needs and the debugging support leading to an inefficient and error-prone debugging effort. To reduce this gap, we propose a framework for developing domain-specific debuggers called the Moldable Debugger. The Moldable Debugger is adapted to a domain by creating and combining domain-specific debugging operations with domain-specific debugging views, and adapts itself to a domain by selecting, at run time, appropriate debugging operations and views. We motivate the need for domain-specific debugging, identify a set of key requirements and show how our approach improves debugging by adapting the debugger to several domains.

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

Access this chapter

Subscribe and save

Springer+ Basic
$34.99 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever

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.

Similar content being viewed by others

References

  1. Vessey, I.: Expertise in Debugging Computer Programs: An Analysis of the Content of Verbal Protocols. IEEE Trans. on Systems, Man, and Cybernetics 16(5), 621–637 (1986)

    Article  Google Scholar 

  2. Tassey, G.: The economic impacts of inadequate infrastructure for software testing. Technical report, National Institute of Standards and Technology (2002)

    Google Scholar 

  3. Littman, D.C., Pinto, J., Letovsky, S., Soloway, E.: Mental models and software maintenance. Journal of Systems and Software 7(4), 341–355 (1987)

    Article  Google Scholar 

  4. Rajlich, V., Wilde, N.: The role of concepts in program comprehension. In: Proc. IWPC, pp. 271–278 (2002)

    Google Scholar 

  5. Renggli, L., Gîrba, T., Nierstrasz, O.: Embedding languages without breaking tools. In: D’Hondt, T. (ed.) ECOOP 2010. LNCS, vol. 6183, pp. 380–404. Springer, Heidelberg (2010)

    Chapter  Google Scholar 

  6. Fowler, M.: Domain-Specific Languages. Addison-Wesley Professional (2010)

    Google Scholar 

  7. Ressia, J., Bergel, A., Nierstrasz, O.: Object-centric debugging. In: Proc. ICSE, pp. 485–495 (2012)

    Google Scholar 

  8. Sillito, J., Murphy, G.C., De Volder, K.: Asking and answering questions during a programming change task. IEEE Trans. Softw. Eng. 34, 434–451 (2008)

    Article  Google Scholar 

  9. Wu, H., Gray, J., Mernik, M.: Grammar-driven generation of domain-specific language debuggers. Softw. Pract. Exper. 38(10), 1073–1103 (2008)

    Article  Google Scholar 

  10. Olsson, R.A., Crawford, R.H., Ho, W.W.: A dataflow approach to event-based debugging. Software - Practice and Experience 21(2), 209–229 (1991)

    Article  Google Scholar 

  11. Marceau, G., Cooper, G.H., Spiro, J.P., Krishnamurthi, S., Reiss, S.P.: The design and implementation of a dataflow language for scriptable debugging. Automated Software Engineering 14(1), 59–86 (2007)

    Article  Google Scholar 

  12. Khoo, Y.P., Foster, J.S., Hicks, M.: Expositor: scriptable time-travel debugging with first-class traces. In: Proc. ICSE, pp. 352–361 (2013)

    Google Scholar 

  13. Lencevicius, R., Hölzle, U., Singh, A.K.: Query-based debugging of object-oriented programs. In: Proc. OOPSLA, pp. 304–317 (1997)

    Google Scholar 

  14. Potanin, A., Noble, J., Biddle, R.: Snapshot query-based debugging. In: Proc. ASWEC, p. 251 (2004)

    Google Scholar 

  15. Martin, M., Livshits, B., Lam, M.S.: Finding application errors and security flaws using PQL: a program query language. In: Proc. OOPSLA, pp. 363–385. ACM (2005)

    Google Scholar 

  16. DeLine, R., Bragdon, A., Rowan, K., Jacobsen, J., Reiss, S.P.: Debugger canvas: industrial experience with the code bubbles paradigm. In: ICSE, pp. 1064–1073 (2012)

    Google Scholar 

  17. Auguston, M., Jeffery, C., Underwood, S.: A framework for automatic debugging. In: Proc. ASE 2002, pp. 217–222. IEEE Computer Society (2002)

    Google Scholar 

  18. Roehm, T., Tiarks, R., Koschke, R., Maalej, W.: How do professional developers comprehend software? In: Proc. ICSE, pp. 255–265 (2012)

    Google Scholar 

  19. Murphy, G.C., Kersten, M., Findlater, L.: How are Java software developers using the Eclipse IDE? IEEE Software (July 2006)

    Google Scholar 

  20. Beck, K.: Test Driven Development: By Example. Addison-Wesley Longman (2002)

    Google Scholar 

  21. Ko, A., Myers, B., Coblenz, M., Aung, H.: An exploratory study of how developers seek, relate, and collect relevant information during software maintenance tasks. IEEE Trans. Softw. Eng. 32(12), 971–987 (2006)

    Article  Google Scholar 

  22. Kersten, M., Murphy, G.C.: Mylar: a degree-of-interest model for IDEs. In: Proc. AOSD, pp. 159–168 (2005)

    Google Scholar 

  23. Hanson, D.R., Korn, J.L.: A simple and extensible graphical debugger. In: WINTER 1997 USENIX CONFERENCE, pp. 173–184 (1997)

    Google Scholar 

  24. Murphy-Hill, E., Parnin, C., Black, A.P.: How we refactor, and how we know it. In: Proc. ICSE, pp. 287–297 (2009)

    Google Scholar 

  25. Murphy-Hill, E., Jiresal, R., Murphy, G.C.: Improving software developers’ fluency by recommending development environment commands. In: FSE, pp. 42:1–42:11 (2012)

    Google Scholar 

  26. Beck, K.: Kent Beck’s Guide to Better Smalltalk. Sigs Books (1999)

    Google Scholar 

  27. Chis, A., Nierstrasz, O., Gîrba, T.: Towards a moldable debugger. In: Proc. DYLA, pp. 2:1–2:6 (2013)

    Google Scholar 

  28. Renggli, L., Ducasse, S., Gîrba, T., Nierstrasz, O.: Practical dynamic grammars for dynamic languages. In: Proc. DYLA (2010)

    Google Scholar 

  29. Bunge, P.: Scripting browsers with Glamour. Master’s thesis, University of Bern (2009)

    Google Scholar 

  30. Crawford, R.H., Olsson, R.A., Ho, W.W., Wee, C.E.: Semantic issues in the design of languages for debugging. Comput. Lang. 21(1), 17–37 (1995)

    Article  Google Scholar 

  31. Lieberman, H., Fry, C.: ZStep 95: A reversible, animated source code stepper. MIT Press (1998)

    Google Scholar 

  32. Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J.M., Irwin, J.: Aspect-oriented programming. In: Akşit, M., Matsuoka, S. (eds.) ECOOP 1997. LNCS, vol. 1241, pp. 220–242. Springer, Heidelberg (1997)

    Chapter  Google Scholar 

  33. Bonér, J.: What are the key issues for commercial AOP use: how does AspectWerkz address them? In: Proc. AOSD, pp. 5–6 (2004)

    Google Scholar 

  34. Kosar, T., Mernik, M., Gray, J., Kos, T.: Debugging measurement systems using a domain-specific modeling language. Computers in Industry 65(4), 622–635 (2014)

    Article  Google Scholar 

  35. Maalej, W.: Task-First or Context-First? Tool Integration Revisited. In: Proc. ASE, pp. 344–355 (2009)

    Google Scholar 

  36. Nierstrasz, O., Ducasse, S., Gîrba, T.: The story of Moose: an agile reengineering environment. In: Proc. of ESEC/FSE, pp. 1–10 (2005) (invited paper)

    Google Scholar 

  37. Ducassé, M.: Coca: An automated debugger for C. In: International Conference on Software Engineering, pp. 154–168 (1999)

    Google Scholar 

  38. Winterbottom, P.: ACID: A debugger built from a language. In: USENIX Technical Conference, pp. 211–222 (1994)

    Google Scholar 

  39. Golan, M., Hanson, D.R.: Duel — a very high-level debugging language. In: USENIX Winter, pp. 107–118 (1993)

    Google Scholar 

  40. Maruyama, K., Terada, M.: Debugging with reverse watchpoint. In: QSIC (2003)

    Google Scholar 

  41. Ko, A.J., Myers, B.A.: Debugging reinvented: Asking and answering why and why not questions about program behavior. In: Proc. of ICSE, pp. 301–310 (2008)

    Google Scholar 

  42. Lindeman, R.T., Kats, L.C., Visser, E.: Declaratively defining domain-specific language debuggers. In: Proc. GPCE, pp. 127–136 (2011)

    Google Scholar 

  43. Kolomvatsos, K., Valkanas, G., Hadjiefthymiades, S.: Debugging applications created by a domain specific language: The IPAC case. J. Syst. Softw. 85(4), 932–943 (2012)

    Article  Google Scholar 

  44. Bragdon, A., Zeleznik, R., Reiss, S.P., Karumuri, S., Cheung, W., Kaplan, J., Coleman, C., Adeputra, F., LaViola Jr., J.J.: Code bubbles: a working set-based interface for code understanding and maintenance. In: CHI, pp. 2503–2512 (2010)

    Google Scholar 

  45. Zeller, A., Lütkehaus, D.: DDD — a free graphical front-end for Unix debuggers. SIGPLAN Not. 31(1), 22–27 (1996)

    Article  Google Scholar 

  46. Cross II, J.H., Hendrix, T.D., Umphress, D.A., Barowski, L.A., Jain, J., Montgomery, L.N.: Robust generation of dynamic data structure visualizations with multiple interaction approaches. Trans. Comput. Educ. 9(2), 13:1–13:32 (2009)

    Google Scholar 

  47. Cheng, Y.P., Chen, J.F., Chiu, M.C., Lai, N.W., Tseng, C.C.: xDIVA: a debugging visualization system with composable visualization metaphors. In: OOPSLA Companion, pp. 807–810 (2008)

    Google Scholar 

  48. van den Brand, M.G.J., Cornelissen, B., Olivier, P.A., Vinju, J.J.: TIDE: A generic debugging framework — tool demonstration —. Electron. Notes Theor. Comput. Sci. 141(4), 161–165 (2005)

    Article  Google Scholar 

  49. Henriques, P.R., Pereira, M.J.V., Mernik, M., Lenic, M., Gray, J., Wu, H.: Automatic generation of language-based tools using the LISA system. IEE Software Journal 152(2), 54–69 (2005)

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2014 Springer International Publishing Switzerland

About this paper

Cite this paper

Chiş, A., Gîrba, T., Nierstrasz, O. (2014). The Moldable Debugger: A Framework for Developing Domain-Specific Debuggers. In: Combemale, B., Pearce, D.J., Barais, O., Vinju, J.J. (eds) Software Language Engineering. SLE 2014. Lecture Notes in Computer Science, vol 8706. Springer, Cham. https://doi.org/10.1007/978-3-319-11245-9_6

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-11245-9_6

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-11244-2

  • Online ISBN: 978-3-319-11245-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics