• DocumentCode
    3232527
  • Title

    Using compressed bytecode traces for slicing Java programs

  • Author

    Wang, Tao ; Roychoudhury, Abhik

  • Author_Institution
    Sch. of Comput., Nat. Univ., Singapore, Singapore
  • fYear
    2004
  • fDate
    23-28 May 2004
  • Firstpage
    512
  • Lastpage
    521
  • Abstract
    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 I. 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).
  • Keywords
    Java; data compression; data flow analysis; program debugging; program slicing; Java program slicing; compact traces; compressed bytecode traces; control flow; data compression; data flow; dependence graph; dynamic slicing algorithms; execution trace; memory reference bytecodes; program debugging; program execution; program statements; representation data addresses; sequential Java programs; space savings; trace representation; Data compression; Debugging; Flow graphs; Heuristic algorithms; Information retrieval; Java; Programming profession; Read-write memory; Software engineering;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Engineering, 2004. ICSE 2004. Proceedings. 26th International Conference on
  • ISSN
    0270-5257
  • Print_ISBN
    0-7695-2163-0
  • Type

    conf

  • DOI
    10.1109/ICSE.2004.1317473
  • Filename
    1317473