Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.1145/3133841.3133842acmconferencesArticle/Chapter ViewAbstractPublication PagessplashConference Proceedingsconference-collections
research-article

A concurrency-agnostic protocol for multi-paradigm concurrent debugging tools

Published: 24 October 2017 Publication History
  • Get Citation Alerts
  • Abstract

    Today's complex software systems combine high-level concurrency models. Each model is used to solve a specific set of problems. Unfortunately, debuggers support only the low-level notions of threads and shared memory, forcing developers to reason about these notions instead of the high-level concurrency models they chose.
    This paper proposes a concurrency-agnostic debugger protocol that decouples the debugger from the concurrency models employed by the target application. As a result, the underlying language runtime can define custom breakpoints, stepping operations, and execution events for each concurrency model it supports, and a debugger can expose them without having to be specifically adapted.
    We evaluated the generality of the protocol by applying it to SOMns, a Newspeak implementation, which supports a diversity of concurrency models including communicating sequential processes, communicating event loops, threads and locks, fork/join parallelism, and software transactional memory. We implemented 21 breakpoints and 20 stepping operations for these concurrency models. For none of these, the debugger needed to be changed. Furthermore, we visualize all concurrent interactions independently of a specific concurrency model. To show that tooling for a specific concurrency model is possible, we visualize actor turns and message sends separately.

    References

    [1]
    George S. Almasi and Allan Gottlieb. 1994. Highly Parallel Computing (2nd ed.). Benjamin-Cummings Publishing Co., Inc.
    [2]
    Robert D. Blumofe, Christopher F. Joerg, Bradley C. Kuszmaul, Charles E. Leiserson, Keith H. Randall, and Yuli Zhou. 1995. Cilk: An Efficient Multithreaded Runtime System. In Proc. of PPoPP, Vol. 30. ACM.
    [3]
    Gilad Bracha, Peter von der Ahé, Vassili Bykov, Yaron Kashai, William Maddox, and Eliot Miranda. 2010. Modules as Objects in Newspeak. In Proc. of ECOOP. LNCS, Vol. 6183. Springer, 405-428.
    [4]
    Andrei Chis, Marcus Denker, Tudor Gîrba, and Oscar Nierstrasz. 2015. Practical domain-specific debuggers using the Moldable Debugger framework. Computer Languages, Systems & Structures 44, Part A (2015), 89-113.
    [5]
    Joeri De Koster, Tom Van Cutsem, and Wolfgang De Meuter. 2016. 43 Years of Actors: A Taxonomy of Actor Models and Their Key Properties. In Proc. of AGERE!'16. ACM, 31-40.
    [6]
    Elisa Gonzalez Boix, Carlos Noguera, and Wolfgang De Meuter. 2014. Distributed debugging for mobile networks. Systems and Software 90 (2014).
    [7]
    Tim Harris, Simon Marlow, Simon Peyton-Jones, and Maurice Herlihy. 2005. Composable Memory Transactions. In Proc. of PPoPP'05. ACM, 48-60.
    [8]
    C. A. R. Hoare. 1978. Communicating Sequential Processes. Commun. ACM 21, 8 (1978), 666-677.
    [9]
    Sven Keidel, Wulf Pfeiffer, and Sebastian Erdweg. 2016. The IDE Portability Problem and Its Solution in Monto. In Proc. of SLE'16. ACM, 152-162.
    [10]
    Leslie Lamport. 1978. Time, Clocks, and the Ordering of Events in a Distributed System. Commun. ACM 21, 7 (July 1978), 558-565.
    [11]
    Stefan Marr, Carmen Torres Lopez, Dominik Aumayr, Elisa Gonzalez Boix, and Hanspeter Mössenböck. 2017. Kómpos: A Platform for Debugging Complex Concurrent Applications. (2 April 2017), 2 pages.
    [12]
    Charles E. McDowell and David P. Helmbold. 1989. Debugging Concurrent Programs. ACM Comput. Surv. 21, 4 (Dec. 1989), 593-622.
    [13]
    Mark S. Miller, E. Dean Tribble, and Jonathan Shapiro. 2005. Concurrency Among Strangers: Programming in E as Plan Coordination. In Symposium on Trustworthy Global Computing (LNCS), R. De Nicola and D. Sangiorgi (Eds.), Vol. 3705. Springer, 195-229.
    [14]
    Jorge Ressia, Alexandre Bergel, and Oscar Nierstrasz. 2012. Object-Centric Debugging. In Proceedings of the 34th International Conference on Software Engineering (ICSE '12). IEEE Press, 485-495.
    [15]
    Chris Seaton, Michael L. Van De Vanter, and Michael Haupt. 2014. Debugging at Full Speed. In Proc. of DYLA'14. ACM, Article 2, 13 pages.
    [16]
    Terry Stanley, Tyler Close, and Mark Miller. 2009. Causeway: A message-oriented distributed debugger. Technical Report. HP Labs. 1-15 pages. HP Labs tech report HPL-2009-78.
    [17]
    Samira Tasharofi, Peter Dinges, and Ralph E. Johnson. 2013. Why Do Scala Developers Mix the Actor Model with other Concurrency Models?. In Proc. of ECOOP (LNCS), Vol. 7920. Springer, 302-326.
    [18]
    Carmen Torres Lopez, Stefan Marr, Hanspeter Mössenböck, and Elisa Gonzalez Boix. 2016. Towards Advanced Debugging Support for Actor Languages: Studying Concurrency Bugs in Actor-based Programs. (30 October 2016). Presentation, AGERE! '16.
    [19]
    Tom Van Cutsem, Elisa Gonzalez Boix, Christophe Scholliers, Andoni Lombide Carreton, Dries Harnie, Kevin Pinte, and Wolfgang De Meuter. 2014. AmbientTalk: programming responsive mobile peer-to-peer applications with actors. Com. Lan., Sys. & Struct. 40, 3-4 (2014), 112-136.
    [20]
    Michael Van De Vanter. 2017. Building Flexible, Low-Overhead Tooling Support into a High-Performance Polyglot VM: Extended Abstract. (2 April 2017), 3 pages. Presentation, MoreVMs'17.
    [21]
    Michael L. Van De Vanter. 2015. Building Debuggers and Other Tools: We Can "Have It All". In Proc. of ICOOOLPS'15. ACM, Article 2, 3 pages.
    [22]
    Thomas Würthinger, Andreas Wöß, Lukas Stadler, Gilles Duboscq, Doug Simon, and Christian Wimmer. 2012. Self-Optimizing AST Interpreters. In Proc. of DLS'12. 73-82.
    [23]
    Ferad Zyulkyarov, Tim Harris, Osman S. Unsal, Adrían Cristal, and Mateo Valero. 2010. Debugging Programs That Use Atomic Blocks and Transactional Memory. In Proc. of PPoPP'10. ACM, 57-66.

    Cited By

    View all
    • (2023)A generic framework for representing and analyzing model concurrencySoftware and Systems Modeling10.1007/s10270-022-01073-222:4(1319-1340)Online publication date: 9-Jan-2023
    • (2019)Debugging support for multi-paradigm concurrent programsProceedings Companion of the 2019 ACM SIGPLAN International Conference on Systems, Programming, Languages, and Applications: Software for Humanity10.1145/3359061.3361074(38-40)Online publication date: 20-Oct-2019
    • (2019)GraalSqueak: toward a smalltalk-based tooling platform for polyglot programmingProceedings of the 16th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes10.1145/3357390.3361024(14-26)Online publication date: 21-Oct-2019
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    DLS 2017: Proceedings of the 13th ACM SIGPLAN International Symposium on on Dynamic Languages
    October 2017
    86 pages
    ISBN:9781450355261
    DOI:10.1145/3133841
    Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than the author(s) must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected].

    Sponsors

    In-Cooperation

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 24 October 2017

    Permissions

    Request permissions for this article.

    Check for updates

    Author Tags

    1. Breakpoints
    2. Concurrency
    3. Debugging
    4. Stepping
    5. Tooling
    6. Visualization

    Qualifiers

    • Research-article

    Funding Sources

    Conference

    SPLASH '17
    Sponsor:

    Acceptance Rates

    Overall Acceptance Rate 32 of 77 submissions, 42%

    Upcoming Conference

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)6
    • Downloads (Last 6 weeks)0

    Other Metrics

    Citations

    Cited By

    View all
    • (2023)A generic framework for representing and analyzing model concurrencySoftware and Systems Modeling10.1007/s10270-022-01073-222:4(1319-1340)Online publication date: 9-Jan-2023
    • (2019)Debugging support for multi-paradigm concurrent programsProceedings Companion of the 2019 ACM SIGPLAN International Conference on Systems, Programming, Languages, and Applications: Software for Humanity10.1145/3359061.3361074(38-40)Online publication date: 20-Oct-2019
    • (2019)GraalSqueak: toward a smalltalk-based tooling platform for polyglot programmingProceedings of the 16th ACM SIGPLAN International Conference on Managed Programming Languages and Runtimes10.1145/3357390.3361024(14-26)Online publication date: 21-Oct-2019
    • (2018)GraalSqueakProceedings of the 13th Workshop on Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems10.1145/3242947.3242948(30-35)Online publication date: 17-Jul-2018
    • (2018)iDeA: an immersive debugger for actorsProceedings of the 17th ACM SIGPLAN International Workshop on Erlang10.1145/3239332.3242762(1-12)Online publication date: 29-Sep-2018
    • (2018)Efficient and deterministic record & replay for actor languagesProceedings of the 15th International Conference on Managed Languages & Runtimes10.1145/3237009.3237015(1-14)Online publication date: 12-Sep-2018
    • (2018)A Study of Concurrency Bugs and Advanced Development Support for Actor-based ProgramsProgramming with Actors10.1007/978-3-030-00302-9_6(155-185)Online publication date: 7-Sep-2018
    • (2017)A principled approach towards debugging communicating event-loopsProceedings of the 7th ACM SIGPLAN International Workshop on Programming Based on Actors, Agents, and Decentralized Control10.1145/3141834.3141839(41-49)Online publication date: 23-Oct-2017
    • (2021)What’s the problem? interrogating actors to identify the root cause of concurrency bugsProceedings of the 11th ACM SIGPLAN International Workshop on Programming Based on Actors, Agents, and Decentralized Control10.1145/3486601.3486709(24-36)Online publication date: 17-Oct-2021

    View Options

    Get Access

    Login options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media