A Pointcut Language for Setting Advanced Breakpoints

Haihan Yin, Christoph Bockisch, Mehmet Akşit

Research output: Chapter in Book/Report/Conference proceedingConference contributionAcademicpeer-review

2 Citations (Scopus)
11 Downloads (Pure)

Abstract

In interactive debugging, it is an essential task to set breakpoints specifying where a program should be suspended at runtime to allow interaction. A debugging session may use multiple logically related breakpoints so that the sequence of their (de)activations leads to the expected suspension with the least irrelevant suspensions. A (de)activation is sometimes decided by some runtime context values related to that breakpoint. However, existing breakpoints, which are mainly based on line locations, are not expressive enough to describe the logic and the collaboration. Programmers have to manually perform some repeated tasks, thus debugging efficiency is decreased. In this paper, we identify five frequently encountered debugging scenarios that require to use multiple breakpoints. For such scenarios, it is often easier than using the traditional debugger to write pointcuts in an aspect-oriented language, and to suspend the execution at the selected join points. However, existing languages cannot handle the scenarios neatly and uniformly. Therefore, we design and implement a breakpoint language that uses pointcuts to select suspension times in the program. Our language allows programmers to use comprehensible source-level abstractions to define breakpoints. Also, multiple breakpoints can be freely composed to express their collaboration. In this way, an expected suspension can be expressively programmed and reached with less or even no irrelevant suspensions.
Original languageEnglish
Title of host publicationAOSD '13
Subtitle of host publicationProceedings of the 12th International Conference on Aspect-oriented Software Development
Place of PublicationNew York, NY
PublisherAssociation for Computing Machinery (ACM)
Pages145-156
Number of pages12
ISBN (Print)978-1-4503-1766-5
DOIs
Publication statusPublished - Mar 2013
Event12th Annual International Conference on Aspect-Oriented Software Development, AOSD 2013 - Fukuoka, Japan
Duration: 24 Mar 201329 Mar 2013
Conference number: 12

Conference

Conference12th Annual International Conference on Aspect-Oriented Software Development, AOSD 2013
Abbreviated titleAOSD
CountryJapan
CityFukuoka
Period24/03/1329/03/13

Fingerprint

Chemical activation

Keywords

  • EWI-23209
  • Pointcut language
  • METIS-297606
  • IR-86097
  • Advanced breakpoint
  • Debugging

Cite this

Yin, H., Bockisch, C., & Akşit, M. (2013). A Pointcut Language for Setting Advanced Breakpoints. In AOSD '13: Proceedings of the 12th International Conference on Aspect-oriented Software Development (pp. 145-156). New York, NY: Association for Computing Machinery (ACM). https://doi.org/10.1145/2451436.2451454
Yin, Haihan ; Bockisch, Christoph ; Akşit, Mehmet . / A Pointcut Language for Setting Advanced Breakpoints. AOSD '13: Proceedings of the 12th International Conference on Aspect-oriented Software Development. New York, NY : Association for Computing Machinery (ACM), 2013. pp. 145-156
@inproceedings{e8e18754a3c9449883815f7186884434,
title = "A Pointcut Language for Setting Advanced Breakpoints",
abstract = "In interactive debugging, it is an essential task to set breakpoints specifying where a program should be suspended at runtime to allow interaction. A debugging session may use multiple logically related breakpoints so that the sequence of their (de)activations leads to the expected suspension with the least irrelevant suspensions. A (de)activation is sometimes decided by some runtime context values related to that breakpoint. However, existing breakpoints, which are mainly based on line locations, are not expressive enough to describe the logic and the collaboration. Programmers have to manually perform some repeated tasks, thus debugging efficiency is decreased. In this paper, we identify five frequently encountered debugging scenarios that require to use multiple breakpoints. For such scenarios, it is often easier than using the traditional debugger to write pointcuts in an aspect-oriented language, and to suspend the execution at the selected join points. However, existing languages cannot handle the scenarios neatly and uniformly. Therefore, we design and implement a breakpoint language that uses pointcuts to select suspension times in the program. Our language allows programmers to use comprehensible source-level abstractions to define breakpoints. Also, multiple breakpoints can be freely composed to express their collaboration. In this way, an expected suspension can be expressively programmed and reached with less or even no irrelevant suspensions.",
keywords = "EWI-23209, Pointcut language, METIS-297606, IR-86097, Advanced breakpoint, Debugging",
author = "Haihan Yin and Christoph Bockisch and Mehmet Akşit",
note = "eemcs-eprint-23209",
year = "2013",
month = "3",
doi = "10.1145/2451436.2451454",
language = "English",
isbn = "978-1-4503-1766-5",
pages = "145--156",
booktitle = "AOSD '13",
publisher = "Association for Computing Machinery (ACM)",
address = "United States",

}

Yin, H, Bockisch, C & Akşit, M 2013, A Pointcut Language for Setting Advanced Breakpoints. in AOSD '13: Proceedings of the 12th International Conference on Aspect-oriented Software Development. Association for Computing Machinery (ACM), New York, NY, pp. 145-156, 12th Annual International Conference on Aspect-Oriented Software Development, AOSD 2013, Fukuoka, Japan, 24/03/13. https://doi.org/10.1145/2451436.2451454

A Pointcut Language for Setting Advanced Breakpoints. / Yin, Haihan; Bockisch, Christoph; Akşit, Mehmet .

AOSD '13: Proceedings of the 12th International Conference on Aspect-oriented Software Development. New York, NY : Association for Computing Machinery (ACM), 2013. p. 145-156.

Research output: Chapter in Book/Report/Conference proceedingConference contributionAcademicpeer-review

TY - GEN

T1 - A Pointcut Language for Setting Advanced Breakpoints

AU - Yin, Haihan

AU - Bockisch, Christoph

AU - Akşit, Mehmet

N1 - eemcs-eprint-23209

PY - 2013/3

Y1 - 2013/3

N2 - In interactive debugging, it is an essential task to set breakpoints specifying where a program should be suspended at runtime to allow interaction. A debugging session may use multiple logically related breakpoints so that the sequence of their (de)activations leads to the expected suspension with the least irrelevant suspensions. A (de)activation is sometimes decided by some runtime context values related to that breakpoint. However, existing breakpoints, which are mainly based on line locations, are not expressive enough to describe the logic and the collaboration. Programmers have to manually perform some repeated tasks, thus debugging efficiency is decreased. In this paper, we identify five frequently encountered debugging scenarios that require to use multiple breakpoints. For such scenarios, it is often easier than using the traditional debugger to write pointcuts in an aspect-oriented language, and to suspend the execution at the selected join points. However, existing languages cannot handle the scenarios neatly and uniformly. Therefore, we design and implement a breakpoint language that uses pointcuts to select suspension times in the program. Our language allows programmers to use comprehensible source-level abstractions to define breakpoints. Also, multiple breakpoints can be freely composed to express their collaboration. In this way, an expected suspension can be expressively programmed and reached with less or even no irrelevant suspensions.

AB - In interactive debugging, it is an essential task to set breakpoints specifying where a program should be suspended at runtime to allow interaction. A debugging session may use multiple logically related breakpoints so that the sequence of their (de)activations leads to the expected suspension with the least irrelevant suspensions. A (de)activation is sometimes decided by some runtime context values related to that breakpoint. However, existing breakpoints, which are mainly based on line locations, are not expressive enough to describe the logic and the collaboration. Programmers have to manually perform some repeated tasks, thus debugging efficiency is decreased. In this paper, we identify five frequently encountered debugging scenarios that require to use multiple breakpoints. For such scenarios, it is often easier than using the traditional debugger to write pointcuts in an aspect-oriented language, and to suspend the execution at the selected join points. However, existing languages cannot handle the scenarios neatly and uniformly. Therefore, we design and implement a breakpoint language that uses pointcuts to select suspension times in the program. Our language allows programmers to use comprehensible source-level abstractions to define breakpoints. Also, multiple breakpoints can be freely composed to express their collaboration. In this way, an expected suspension can be expressively programmed and reached with less or even no irrelevant suspensions.

KW - EWI-23209

KW - Pointcut language

KW - METIS-297606

KW - IR-86097

KW - Advanced breakpoint

KW - Debugging

U2 - 10.1145/2451436.2451454

DO - 10.1145/2451436.2451454

M3 - Conference contribution

SN - 978-1-4503-1766-5

SP - 145

EP - 156

BT - AOSD '13

PB - Association for Computing Machinery (ACM)

CY - New York, NY

ER -

Yin H, Bockisch C, Akşit M. A Pointcut Language for Setting Advanced Breakpoints. In AOSD '13: Proceedings of the 12th International Conference on Aspect-oriented Software Development. New York, NY: Association for Computing Machinery (ACM). 2013. p. 145-156 https://doi.org/10.1145/2451436.2451454