Dynamic Query-Based Debugging of Object-Oriented Programs

被引:7
|
作者
Raimondas Lencevicius
Urs Hölzle
Ambuj K. Singh
机构
[1] Nokia Research Center,Department of Computer Science
[2] Google Inc,undefined
[3] University of California,undefined
关键词
object-oriented software development; debugging; query optimization; run-time tools;
D O I
10.1023/A:1021816917888
中图分类号
学科分类号
摘要
Program errors are hard to find because of the cause-effect gap between the instant when an error occurs and when the error becomes apparent to the programmer. Although debugging techniques such as conditional and data breakpoints help in finding errors in simple cases, they fail to effectively bridge the cause-effect gap in many situations. This paper proposes two debuggers that provide programmers with an instant error alert by continuously checking inter-object relationships while the debugged program is running. We call such tool a dynamic query-based debugger. To speed up dynamic query evaluation, our debugger implemented in portable Java uses a combination of program instrumentation, load-time code generation, query optimization, and incremental reevaluation. Experiments and a query cost model show that selection queries are efficient in most cases, while more costly join queries are practical when query evaluations are infrequent or query domains are small. To enable query-based debugging in the middle of program execution in a portable way, our debugger performs efficient Java class file instrumentation. We call such debugger an on-the-fly debugger. Though the on-the-fly debugger has a higher overhead than a dynamic query-based debugger, it offers additional interactive power and flexibility while maintaining complete portability.
引用
收藏
页码:39 / 74
页数:35
相关论文
共 50 条
  • [1] Query-based debugging of object-oriented programs
    Lencevicius, R
    Holzle, U
    Singh, AK
    ACM SIGPLAN NOTICES, 1997, 32 (10) : 304 - 317
  • [2] Dynamic slicing object-oriented programs for debugging
    Xu, BW
    Chen, ZQ
    SCAM 2002: SECOND IEEE INTERNATIONAL WORKSHOP ON SOURCE CODE ANALYSIS MANIPULATION, PROCEEDINGS, 2002, : 115 - 122
  • [3] Dynamic query-based debugging
    Lencevicius, R
    Hölzle, U
    Singh, AK
    ECOOP'99 - OBJECT-ORIENTED PROGRAMMING, 1999, 1628 : 135 - 160
  • [4] Query-Based Object-Oriented Programming A Declarative Web of Objects
    Seginer, Yoav
    Vosse, Theo
    Harari, Gil
    Kolodny, Uri
    DLS'18: PROCEEDINGS OF THE 14TH ACM SIGPLAN INTERNATIONAL SYMPOSIUM ON DYNAMIC LANGUAGES, 2018, : 64 - 75
  • [5] Interactive Query-Based Debugging of ASP Programs
    Shchekotykhin, Kostyantyn
    PROCEEDINGS OF THE TWENTY-NINTH AAAI CONFERENCE ON ARTIFICIAL INTELLIGENCE, 2015, : 1597 - 1603
  • [6] Snapshot query-based debugging
    Potanin, A
    Noble, J
    Biddle, R
    2004 AUSTRALIAN SOFTWARE ENGINEERING CONFERENCE, PROCEEDINGS, 2004, : 251 - 259
  • [7] Debugging of object-oriented software
    Law, RCH
    Maguire, RB
    SEKE '96: THE 8TH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING AND KNOWLEDGE ENGINEERING, PROCEEDINGS, 1996, : 77 - 84
  • [8] Monadic Dynamic Slicing of Object-Oriented Programs
    Xu, Bihuan
    Zhang, Yingzhou
    Zhu, Shurong
    Qian, Junyan
    2018 INTERNATIONAL CONFERENCE ON CYBER-ENABLED DISTRIBUTED COMPUTING AND KNOWLEDGE DISCOVERY (CYBERC 2018), 2018, : 247 - 254
  • [9] Dynamic slicing of distributed object-oriented programs
    Barpanda, S. S.
    Mohapatra, D. P.
    IET SOFTWARE, 2011, 5 (05) : 425 - 433
  • [10] DEBUGGING TOOLS FOR OBJECT-ORIENTED PROGRAMMING
    PURCHASE, JA
    WINDER, RL
    JOURNAL OF OBJECT-ORIENTED PROGRAMMING, 1991, 4 (03): : 10 - &