Using compressed bytecode traces for slicing Java']Java programs

被引:43
|
作者
Wang, T [1 ]
Roychoudhury, A [1 ]
机构
[1] Natl Univ Singapore, Sch Comp, Singapore 117543, Singapore
关键词
D O I
10.1109/ICSE.2004.1317473
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Dynamic slicing is a well-known program debugging technique. Given a program P and input I, it finds all program statements which directly/indirectly affect the values of some variables' occurrences when P is executed with L Dynamic slicing algorithms often proceed by traversing the execution trace of P produced by input I (or a dependence graph which captures control/data flow in the execution trace). Consequently, it is important to develop space efficient representations of the execution trace. In this paper we use results from data compression to compactly represent bytecode traces of sequential Java programs. The major space savings come from the optimized representation of data (instruction) addresses used by memory reference (branch) bytecodes as operands. We give detailed experimental results on the space efficiency and time overheads for our compact trace representation. We then show how dynamic slicing algorithms can directly traverse our compact traces without resorting to costly decompression. We also develop an extension of dynamic slicing which allows us to explain omission errors (i.e. why some events did not happen during program execution).
引用
收藏
页码:512 / 521
页数:10
相关论文
共 50 条
  • [41] A model for slicing JAVA programs hierarchically
    Bi-Xin Li
    Xiao-Cong Fan
    Jun Pang
    Jian-Jun Zhao
    [J]. Journal of Computer Science and Technology, 2004, 19 : 848 - 858
  • [42] On object initialization in the Java']Java bytecode
    Doyon, S
    Debbabi, M
    [J]. COMPUTER COMMUNICATIONS, 2000, 23 (17) : 1594 - 1605
  • [43] Deadlock Detection of Java']Java Bytecode
    Laneve, Cosimo
    Garcia, Abel
    [J]. LOGIC-BASED PROGRAM SYNTHESIS AND TRANSFORMATION (LOPSTR 2017), 2018, 10855 : 37 - 53
  • [44] Reverse execution of Java']Java bytecode
    Cook, JJ
    [J]. COMPUTER JOURNAL, 2002, 45 (06): : 608 - 619
  • [45] Integrated Java']Java Bytecode Verification
    Gal, Andreas
    Probst, Christian W.
    Franz, Michael
    [J]. ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2005, 131 : 27 - 38
  • [46] Modeling the Java']Java Bytecode Verifier
    Reynolds, Mark C.
    [J]. SCIENCE OF COMPUTER PROGRAMMING, 2013, 78 (03) : 327 - 342
  • [47] Termination analysis of Java']Java Bytecode
    Albert, Elvira
    Arenas, Puri
    Codish, Michael
    Genaim, Samir
    Puebla, German
    Zanardini, Damiano
    [J]. FORMAL METHODS FOR OPEN OBJECT-BASED DISTRIBUTED SYSTEMS, PROCEEDINGS, 2008, 5051 : 2 - +
  • [48] Dynamic semantics of Java']Java bytecode
    Bertelsen, P
    [J]. FUTURE GENERATION COMPUTER SYSTEMS, 2000, 16 (07) : 841 - 850
  • [49] Java']Java bytecode verification: An overview
    Leroy, X
    [J]. COMPUTER AIDED VERIFICATION, PROCEEDINGS, 2001, 2102 : 265 - 285
  • [50] Cost analysis of Java']Java bytecode
    Albert, E.
    Arenas, P.
    Genaim, S.
    Puebla, G.
    Zanardini, D.
    [J]. PROGRAMMING LANGUAGES AND SYSTEMS, PROCEEDINGS, 2007, 4421 : 157 - +