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)
    13 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