Skip to main content
Erschienen in: Automated Software Engineering 1/2007

01.03.2007

The design and implementation of a dataflow language for scriptable debugging

verfasst von: Guillaume Marceau, Gregory H. Cooper, Jonathan P. Spiro, Shriram Krishnamurthi, Steven P. Reiss

Erschienen in: Automated Software Engineering | Ausgabe 1/2007

Einloggen

Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.

search-config
loading …

Abstract

Debugging is a laborious, manual activity that often involves the repetition of common operations. Ideally, users should be able to describe these repetitious operations as little programs. Debuggers should therefore be programmable, or scriptable. The operating environment of these scripts, however, imposes interesting design challenges on the programming language in which these scripts are written.
This paper presents our design of a language for scripting debuggers. The language offers powerful primitives that can precisely and concisely capture many important debugging and comprehension metaphors. The paper also describes a pair of debuggers, one for Java and the other for Scheme, built in accordance with these principles. The paper includes concrete examples of applying this debugger to programs.

Sie haben noch keine Lizenz? Dann Informieren Sie sich jetzt über unsere Produkte:

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Fußnoten
1
Here and in the rest of this paper, we use the infix notation supported by FrTime: (x . op . y) is the same as (op x y) in traditional Lisp syntax.
 
2
In Scheme, any value other than false is true.
 
3
Since the property we are monitoring depends only on the nodes’ weights, not their identities, the model avoids potential ordering discrepancies between equally-weighted nodes.
 
4
Our work additionally introduces a syntactic difference when the target language is Java, but this can be papered over by a preprocessor.
 
5
The Ruby JDWP project. http://rubyforge.org/projects/rubyjdwp/.
 
6
We also have another behavior where/ss (for where with single stepping) which updates at every step of the execution. This is useful for scripts that want to process the entire trace of the target. However, where/ss is disabled by default, for performance reasons.
 
Literatur
Zurück zum Zitat Aral, Z., Gertner, I.: High-level debugging in Parasight. In: Proceedings of the ACM SIGPLAN and SIGOPS Workshop on Parallel and Distributed Debugging, pp. 151–162. ACM Press (1988) Aral, Z., Gertner, I.: High-level debugging in Parasight. In: Proceedings of the ACM SIGPLAN and SIGOPS Workshop on Parallel and Distributed Debugging, pp. 151–162. ACM Press (1988)
Zurück zum Zitat Aspect oriented programming (article series). Commun. ACM 44(10) (2001) Aspect oriented programming (article series). Commun. ACM 44(10) (2001)
Zurück zum Zitat Auguston, M., Jeffery, C., Underwood, S.: A framework for automatic debugging. In: Automated Software Engineering, pp. 217–222 (2002) Auguston, M., Jeffery, C., Underwood, S.: A framework for automatic debugging. In: Automated Software Engineering, pp. 217–222 (2002)
Zurück zum Zitat Bruegge, B., Hibbard, P.: Generalized path expressions: A high level debugging mechanism. In: Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on High-level Debugging, pp. 34–44 (1983) Bruegge, B., Hibbard, P.: Generalized path expressions: A high level debugging mechanism. In: Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on High-level Debugging, pp. 34–44 (1983)
Zurück zum Zitat Clements, J., Felleisen, M.: A tail-recursive machine with stack inspection. ACM Trans. Program. Lang. Syst. 26(6), 1029–1052 (2004) Clements, J., Felleisen, M.: A tail-recursive machine with stack inspection. ACM Trans. Program. Lang. Syst. 26(6), 1029–1052 (2004)
Zurück zum Zitat Cooper, G.H., Krishnamurthi, S.: Embedding dynamic dataflow in a call-by-value language. In: European Symposium on Programming (2006) Cooper, G.H., Krishnamurthi, S.: Embedding dynamic dataflow in a call-by-value language. In: European Symposium on Programming (2006)
Zurück zum Zitat Cormen, T.H., Leiserson, C.E., Rivest, R.L.: Introduction to Algorithms. McGraw-Hill (1997) Cormen, T.H., Leiserson, C.E., Rivest, R.L.: Introduction to Algorithms. McGraw-Hill (1997)
Zurück zum Zitat Courtney, A.: Frappé: Functional reactive programming in Java. In: Practical Aspects of Declarative Languages, pp. 29–44. Springer-Verlag (March 2001) Courtney, A.: Frappé: Functional reactive programming in Java. In: Practical Aspects of Declarative Languages, pp. 29–44. Springer-Verlag (March 2001)
Zurück zum Zitat Crawford, R.H., Olsson, R.A., Ho, W.W., Wee, C.E.: Semantic issues in the design of languages for debugging. In: Proceedings of the International Conference on Computer Languages, pp. 252–261 (1992) Crawford, R.H., Olsson, R.A., Ho, W.W., Wee, C.E.: Semantic issues in the design of languages for debugging. In: Proceedings of the International Conference on Computer Languages, pp. 252–261 (1992)
Zurück zum Zitat de Sousa Dias, M., Richardson, D.J.: Issues on software monitoring. Technical report, ICS (2002) de Sousa Dias, M., Richardson, D.J.: Issues on software monitoring. Technical report, ICS (2002)
Zurück zum Zitat Ducassé, M.: Coca: an automated debugger for C. In: Proceedings of the 21st International Conference on Software Engineering, pp. 504–513 (1999) Ducassé, M.: Coca: an automated debugger for C. In: Proceedings of the 21st International Conference on Software Engineering, pp. 504–513 (1999)
Zurück zum Zitat Elliott, C., Hudak, P.: Functional reactive animation. In: Proceedings of the International Conference on Functional Programming, pp. 263–277 (1997) Elliott, C., Hudak, P.: Functional reactive animation. In: Proceedings of the International Conference on Functional Programming, pp. 263–277 (1997)
Zurück zum Zitat Filman, R., Friedman, D.P.: Aspect-oriented programming is quantification and obliviousness. In: Workshop on Advanced Separation of Concerns (October 2000) Filman, R., Friedman, D.P.: Aspect-oriented programming is quantification and obliviousness. In: Workshop on Advanced Separation of Concerns (October 2000)
Zurück zum Zitat Findler, R.B., Clements, J., Flanagan, C., Flatt, M., Krishnamurthi, S., Steckler, P., Felleisen, M.: DrScheme: A programming environment for Scheme. J. Funct. Program. 12(2), 159–182 (2002) Findler, R.B., Clements, J., Flanagan, C., Flatt, M., Krishnamurthi, S., Steckler, P., Felleisen, M.: DrScheme: A programming environment for Scheme. J. Funct. Program. 12(2), 159–182 (2002)
Zurück zum Zitat Flatt, M., Findler, R.B., Krishnamurthi, S., Felleisen, M.: Programming languages as operating systems (or, Revenge of the Son of the Lisp Machine). In: ACM SIGPLAN International Conference on Functional Programming, pp. 138–147 (September 1999) Flatt, M., Findler, R.B., Krishnamurthi, S., Felleisen, M.: Programming languages as operating systems (or, Revenge of the Son of the Lisp Machine). In: ACM SIGPLAN International Conference on Functional Programming, pp. 138–147 (September 1999)
Zurück zum Zitat Golan, M., Hanson, D.R.: DUEL – a very high-level debugging language. In: Proceedings of the USENIX Annual Technical Conference, pp. 107–118, Winter (1993) Golan, M., Hanson, D.R.: DUEL – a very high-level debugging language. In: Proceedings of the USENIX Annual Technical Conference, pp. 107–118, Winter (1993)
Zurück zum Zitat Hanson, D.R., Kom, J.L.: A simple and extensible graphical debugger. In: Proceedings of the USENIX Annual Technical Conference, pp. 183–174 (1997) Hanson, D.R., Kom, J.L.: A simple and extensible graphical debugger. In: Proceedings of the USENIX Annual Technical Conference, pp. 183–174 (1997)
Zurück zum Zitat Jeffery, C., Zhou, W., Templer, K., Brazell, M.: A lightweight architecture for program execution monitoring. In: SIGPLAN Notices vol. 33, pp. 67–74 (1998) Jeffery, C., Zhou, W., Templer, K., Brazell, M.: A lightweight architecture for program execution monitoring. In: SIGPLAN Notices vol. 33, pp. 67–74 (1998)
Zurück zum Zitat Johnson, M.S.: Dispel: A run-time debugging language. Comput. Lang. 6, 79–94 (1981) Johnson, M.S.: Dispel: A run-time debugging language. Comput. Lang. 6, 79–94 (1981)
Zurück zum Zitat Kelsey, R., Clinger, W., Rees, J.: Revised5 report on the algorithmic language Scheme. ACM SIGPLAN Notices 33(9) (1998) Kelsey, R., Clinger, W., Rees, J.: Revised5 report on the algorithmic language Scheme. ACM SIGPLAN Notices 33(9) (1998)
Zurück zum Zitat Lencevicius, R.: On-the-fly query-based debugging with examples. In: Proceedings of the Fourth International Workshop on Automated Debugging (2000) Lencevicius, R.: On-the-fly query-based debugging with examples. In: Proceedings of the Fourth International Workshop on Automated Debugging (2000)
Zurück zum Zitat Lencevicius, R., Hölzle, U., Singh, A.K.: Dynamic query-based debugging of object-oriented programs. Autom. Softw. Eng. 10(1), 39–74 (2003) Lencevicius, R., Hölzle, U., Singh, A.K.: Dynamic query-based debugging of object-oriented programs. Autom. Softw. Eng. 10(1), 39–74 (2003)
Zurück zum Zitat Marceau, G., Cooper, G.H., Krishnamurthi, S., Reiss, S.P.: A dataflow language for scriptable debugging. In: IEEE International Conference on Automated Software Engineering (2004) Marceau, G., Cooper, G.H., Krishnamurthi, S., Reiss, S.P.: A dataflow language for scriptable debugging. In: IEEE International Conference on Automated Software Engineering (2004)
Zurück zum Zitat Meyer, B.: Eiffel: The Language. Prentice-Hall (1992) Meyer, B.: Eiffel: The Language. Prentice-Hall (1992)
Zurück zum Zitat Olsson, R.A., Crawford, R.H., Wilson Ho, W.: Dalek: A GNU, improved programmable debugger. In: Proceedings of the Usenix Technical Conference, pp. 221–232 (1990) Olsson, R.A., Crawford, R.H., Wilson Ho, W.: Dalek: A GNU, improved programmable debugger. In: Proceedings of the Usenix Technical Conference, pp. 221–232 (1990)
Zurück zum Zitat Smith, D.R.: A generative approach to aspect-oriented programming. In: International Conference on Generative Programming and Component Engineering, vol. 3286, pp. 39–54 (2004) Smith, D.R.: A generative approach to aspect-oriented programming. In: International Conference on Generative Programming and Component Engineering, vol. 3286, pp. 39–54 (2004)
Zurück zum Zitat Stallman, R.M.: GDB Manual (The GNU Source-Level Debugger). Free Software Foundation, third edition. Cambridge, MA (January 1989) Stallman, R.M.: GDB Manual (The GNU Source-Level Debugger). Free Software Foundation, third edition. Cambridge, MA (January 1989)
Zurück zum Zitat Winterbottom, P.: Acid, a debugger built from a language. In: Proceedings of the USENIX Annual Technical Conference, pp. 211–222 (January 1994) Winterbottom, P.: Acid, a debugger built from a language. In: Proceedings of the USENIX Annual Technical Conference, pp. 211–222 (January 1994)
Metadaten
Titel
The design and implementation of a dataflow language for scriptable debugging
verfasst von
Guillaume Marceau
Gregory H. Cooper
Jonathan P. Spiro
Shriram Krishnamurthi
Steven P. Reiss
Publikationsdatum
01.03.2007
Erschienen in
Automated Software Engineering / Ausgabe 1/2007
Print ISSN: 0928-8910
Elektronische ISSN: 1573-7535
DOI
https://doi.org/10.1007/s10515-006-0003-z

Weitere Artikel der Ausgabe 1/2007

Automated Software Engineering 1/2007 Zur Ausgabe

Book Review

Dessert Island

EditorialNotes

Introduction

Premium Partner