Time-traveling object-centric breakpoints

IF 1.7 3区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING Journal of Computer Languages Pub Date : 2024-06-18 DOI:10.1016/j.cola.2024.101285
Valentin Bourcier , Steven Costiou , Maximilian Ignacio Willembrinck Santander , Adrien Vanègue , Anne Etien
{"title":"Time-traveling object-centric breakpoints","authors":"Valentin Bourcier ,&nbsp;Steven Costiou ,&nbsp;Maximilian Ignacio Willembrinck Santander ,&nbsp;Adrien Vanègue ,&nbsp;Anne Etien","doi":"10.1016/j.cola.2024.101285","DOIUrl":null,"url":null,"abstract":"<div><p>Object-centric breakpoints aim to facilitate the debugging of object-oriented programs by focusing on specific objects. However, their practical application faces limitations. They often produce false positives and require developers to identify objects to debug in a running program, which is sometimes not possible due to non-determinism. Additionally, object-centric breakpoints are difficult to build because, to the best of our knowledge, their implementations have never been abstracted from low-level concerns. The literature describes complex reflective architectures necessary for implementing these breakpoints, and their rare available implementations are language-specific.</p><p>In this paper, we introduce <em>Time-Traveling Object-Centric Breakpoints (TTOCBs)</em>, a new definition and implementation of object-centric breakpoints based on <em>Time-Traveling Queries (TTQs)</em>. TTQs are an extensible time-traveling debugging system that allows developers to explore their program executions back and forth by executing debugging queries. We argue that our query-based implementation helps to overcome the limitations of traditional object-centric breakpoints. We describe how TTOCBs assist developers in searching for objects to debug within their program executions, even in the presence of non-determinism. We illustrate how existing object-centric breakpoints from the literature can be implemented and how new ones can be created in a few steps using the TTQ abstractions and scripting API. To build breakpoints, developers need to familiarize themselves with a short API instead of learning language reflection techniques and libraries. This makes our TTOCBs independent of the underlying TTQs and debugger implementations.</p><p>To evaluate our solution, we conducted an initial anecdotal user study on four example scenarios, providing evidence that debugging with TTOCBs requires fewer actions than with traditional object-centric breakpoints. We then discuss the comparison between object-centric breakpoints and TTOCBs in terms of applicability and performance.</p></div>","PeriodicalId":48552,"journal":{"name":"Journal of Computer Languages","volume":"80 ","pages":"Article 101285"},"PeriodicalIF":1.7000,"publicationDate":"2024-06-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Journal of Computer Languages","FirstCategoryId":"94","ListUrlMain":"https://www.sciencedirect.com/science/article/pii/S2590118424000285","RegionNum":3,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q3","JCRName":"COMPUTER SCIENCE, SOFTWARE ENGINEERING","Score":null,"Total":0}
引用次数: 0

Abstract

Object-centric breakpoints aim to facilitate the debugging of object-oriented programs by focusing on specific objects. However, their practical application faces limitations. They often produce false positives and require developers to identify objects to debug in a running program, which is sometimes not possible due to non-determinism. Additionally, object-centric breakpoints are difficult to build because, to the best of our knowledge, their implementations have never been abstracted from low-level concerns. The literature describes complex reflective architectures necessary for implementing these breakpoints, and their rare available implementations are language-specific.

In this paper, we introduce Time-Traveling Object-Centric Breakpoints (TTOCBs), a new definition and implementation of object-centric breakpoints based on Time-Traveling Queries (TTQs). TTQs are an extensible time-traveling debugging system that allows developers to explore their program executions back and forth by executing debugging queries. We argue that our query-based implementation helps to overcome the limitations of traditional object-centric breakpoints. We describe how TTOCBs assist developers in searching for objects to debug within their program executions, even in the presence of non-determinism. We illustrate how existing object-centric breakpoints from the literature can be implemented and how new ones can be created in a few steps using the TTQ abstractions and scripting API. To build breakpoints, developers need to familiarize themselves with a short API instead of learning language reflection techniques and libraries. This makes our TTOCBs independent of the underlying TTQs and debugger implementations.

To evaluate our solution, we conducted an initial anecdotal user study on four example scenarios, providing evidence that debugging with TTOCBs requires fewer actions than with traditional object-centric breakpoints. We then discuss the comparison between object-centric breakpoints and TTOCBs in terms of applicability and performance.

查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
以对象为中心的时间旅行断点
以对象为中心的断点旨在通过关注特定对象来促进面向对象程序的调试。然而,它们的实际应用面临着局限性。它们经常会产生误报,要求开发人员在运行的程序中确定要调试的对象,而由于程序的非确定性,这有时是不可能的。此外,以对象为中心的断点很难构建,因为据我们所知,断点的实现从未从底层关注点中抽象出来。文献中描述了实现这些断点所需的复杂反射架构,而这些罕见的可用实现都是针对特定语言的。在本文中,我们介绍了基于时程查询(TTQ)的以对象为中心的断点的新定义和实现--时程查询断点(TTOCBs)。TTQs 是一种可扩展的时间旅行调试系统,允许开发人员通过执行调试查询来回探索程序执行情况。我们认为,我们基于查询的实现有助于克服传统的以对象为中心的断点的局限性。我们描述了 TTOCB 如何帮助开发人员在程序执行中搜索要调试的对象,即使是在非确定性存在的情况下。我们说明了如何实现文献中现有的以对象为中心的断点,以及如何利用 TTQ 抽象和脚本 API 在几个步骤内创建新的断点。要创建断点,开发人员只需熟悉简短的 API,而无需学习语言反射技术和库。为了评估我们的解决方案,我们对四个示例场景进行了初步的用户研究,结果表明,与传统的以对象为中心的断点相比,使用 TTOCB 进行调试所需的操作更少。然后,我们讨论了以对象为中心的断点和 TTOCB 在适用性和性能方面的比较。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
Journal of Computer Languages
Journal of Computer Languages Computer Science-Computer Networks and Communications
CiteScore
5.00
自引率
13.60%
发文量
36
期刊最新文献
Combining type inference techniques for semi-automatic UML generation from Pharo code Editorial Board An efficient instance selection algorithm for fast training of support vector machine for cross-project software defect prediction pairs Detection and treatment of string events in the limit ClangOz: Parallel constant evaluation of C++ map and reduce operations
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1