Skip to main content

Extensible Debugger Framework for Extensible Languages

  • Conference paper
  • First Online:

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

Abstract

Language extension enables integration of new language constructs without invasive changes to a base language (e. g., C). Such extensions help to build more reliable software by using proper domain-specific abstractions. Language workbenches significantly reduce the effort for building such extensible languages by synthesizing a fully-fledged IDE from language definitions. However, in contemporary tools, this synthesis does not include interactive debugging for programs written with the base language or its extensions. This paper describes a generic framework for extensible debuggers that enables debugging of the language extensions by defining mappings between the base language and the language extensions. The architecture is designed for extensibility, so debug support for future extensions can be contributed with little effort. We show an implementation of our approach for mbeddr, which is an extensible version of the C programming language. We also discuss the debugger implementation for non-trivial C extensions such as components. Finally, the paper discusses the extent to which the approach can be used with other base languages, debugger backends and language workbenches.

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

Buying options

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

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Al-Sharif, Z., Jeffery, C.: An Extensible Source-Level Debugger. In: Proceedings of the 2009 ACM Symposium on Applied Computing, pp. 543–544. ACM, Honolulu (2009)

    Google Scholar 

  2. Van den Brand, M.G.J., Cornelissen, B., Oliver, P.A., Vinju, J.J.: TIDE: A Generic Debugging Framework - Tool Demonstration. In: Electronic Notes in Theoretical Computer Science, vol. 141, pp. 161–165. Edinburgh, UK (2005)

    Google Scholar 

  3. Cornelissen, B.: Using TIDE to Debug ASF+SDF on Multiple Levels. Master’s thesis, University of Amsterdam, Netherlands (2005)

    Google Scholar 

  4. Culpepper, R., Felleisen, M.: Debugging Macros. In: 6th International Conference on enerative Programming and Component Engineering, pp. 135–144. ACM, Salzburg (2007)

    Google Scholar 

  5. van Deursen, A., Dinesh, T.B., van der Meulen, E.: The ASF+SDF Meta-Environment. In: Proceedings of the 3rd International Conference on Methodology and Software Technology, pp. 411–412. Springer, Enschede (1993)

    Google Scholar 

  6. Eclipse Foundation: Eclipse CDT (2015). http://www.eclipse.org/cdt

  7. International Organization for Standardization (ISO): ISO C 99 Standard (1999). http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf

  8. JetBrains: Meta Programming System (2015). http://www.jetbrains.com/mps

  9. Lindeman, R.T., Kats, L.C., Visser, E.: Declaratively Defining Domain-specific Language Debuggers. In: 10th Conference on Generative Programming and Component Engineering, pp. 127–136. ACM, New York (2011)

    Google Scholar 

  10. May, J., Berman, F.: Panorama: A Portable, Extensible Parallel Debugger. In: 3rd Workshop on Parallel and Distributed Debugging, pp. 96–106. ACM, San Diego (1993)

    Google Scholar 

  11. Pavletic, D., Raza, S.A., Voelter, M., Kolb, B., Kehrer, T.: Extensible Debuggers for Extensible Languages. In: 15th Workshop Software-Reengineering. pp. 33–34. Bad Honnef, Germany (2013)

    Google Scholar 

  12. Porkoláb, Z., Mihalicza, J., Sipos, A.: Debugging C++ Template Metaprograms. In: 5th Conference on Generative Programming and Component Engineering, pp. 255–264. ACM, New York (2006)

    Google Scholar 

  13. Voelter, Markus: Language and IDE Modularization and Composition with MPS. In: Lämmel, Ralf, Saraiva, Jo\ {a}o, Visser, Joost (eds.) GTTSE 2011. LNCS, vol. 7680, pp. 383–430. Springer, Heidelberg (2013)

    Google Scholar 

  14. Voelter, M.: Preliminary Experience of using mbeddr for Developing Embedded Software. In: Proceedings of the Workshop Model-based Engineering of Embedded Systems X, pp. 73–82. Wadern, Germany (2014)

    Google Scholar 

  15. Voelter, M., Ratiu, D., Schaetz, B., Kolb, B.: Mbeddr: An Extensible C-based Programming Language and IDE for Embedded Systems. In: Conference on Systems. Programming, and Applications: Software for Humanity, SPLASH 2012, pp. 121–140. ACM, New York (2012)

    Google Scholar 

  16. Voelter, M., Visser, E.: Language Extension and Composition with Language Workbenches. In: Companion to the 25th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, SPLASH/OOPSLA, pp. 301–304. ACM, New York (2010)

    Google Scholar 

  17. Vraný, Jan, Píše, Michal: Multilanguage Debugger Architecture. In: van Leeuwen, Jan, Muscholl, Anca, Peleg, David, Pokorný, Jaroslav, Rumpe, Bernhard (eds.) SOFSEM 2010. LNCS, vol. 5901, pp. 731–742. Springer, Heidelberg (2010)

    Google Scholar 

  18. Wu, H.: Grammar-Driven Generation of Domain-Specific Language Testing Tools. In: Companion to the 20th Annual ACM SIGPLAN Conference on Object-Oriented Programming. Systems, Languages, and Applications, OOPSLA 2005, pp. 210–211. ACM, San Diego (2005)

    Google Scholar 

  19. Wu, H., Gray, J.G., Roychoudhury, S., Mernik, M.: Weaving a Debugging Aspect into Domain-Specific Language Grammars. In: Proceedings of the 2005 ACM Symposium on Applied Computing, pp. 1370–1374. ACM, Santa Fe (2005)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Domenik Pavletic .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2015 Springer International Publishing Switzerland

About this paper

Cite this paper

Pavletic, D., Voelter, M., Raza, S.A., Kolb, B., Kehrer, T. (2015). Extensible Debugger Framework for Extensible Languages. In: de la Puente, J., Vardanega, T. (eds) Reliable Software Technologies – Ada-Europe 2015. Ada-Europe 2015. Lecture Notes in Computer Science(), vol 9111. Springer, Cham. https://doi.org/10.1007/978-3-319-19584-1_3

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-19584-1_3

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-19583-4

  • Online ISBN: 978-3-319-19584-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics