Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.5555/998675.999455acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
Article

Using Compressed Bytecode Traces for Slicing Java Programs

Published: 23 May 2004 Publication History

Abstract

Dynamic slicing is a well-known program debuggingtechnique. Given a program P and input I, it finds all programstatements which directly/indirectly affect the valuesof some variablesý occurrences when P is executed with I.Dynamic slicing algorithms often proceed by traversing theexecution trace of P produced by input I (or a dependencegraph which captures control/data flow in the executiontrace). Consequently, it is important to develop space efficient representations of the execution trace.In this paper, we use results from data compression tocompactly represent bytecode traces of sequential Java programs.The major space savings come from the optimizedrepresentation of data (instruction) addresses used by memoryreference (branch) bytecodes as operands. We give detailedexperimental results on the space efficiency and timeoverheads for our compact trace representation. We thenshow how dynamic slicing algorithms can directly traverseour compact traces without resorting to costly decompression.We also develop an extension of dynamic slicing whichallows us to explain omission errors (i.e. why some eventsdid not happen during program execution).

References

[1]
{1} H. Agrawal. Towards Automatic Debugging of Computer Programs. PhD thesis, Purdue University, 1991.
[2]
{2} H. Agrawal and J. Horgan. Dynamic program slicing. In ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), 1990.
[3]
{3} H. Agrawal, J. Horgan, E. Krauser, and S. London. Incremental regression testing. In International Conference on Software Maintenance (ICSM), pages 348-357, 1993.
[4]
{4} M. Cierniak, G.-Y. Lueh, and J. M. Stichnoth. Practicing JUDO: Java under dynamic optimizations. In ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), pages 13-26, 2000.
[5]
{5} A. Goel, A. Roychoudhury, and T. Mitra. Compactly representing parallel program executions. In ACM Symposium on Principles and Practice of Parallel Programming (PPoPP), pages 191-202, 2003.
[6]
{6} T. Gyimóthy, A. Beszédes, and I. Forgács. An efficient relevant slicing method for debugging. In 7th ACM SIGSOFT International Symposium on Foundations of Software Engineering , pages 303-321, 1999.
[7]
{7} S. Horwitz, T. Reps, and D. Binkley. Interprocedural slicing using dependence graphs. ACM Transactions on Programming Languages and Systems (TOPLAS), 12(1):26-60, 1990.
[8]
{8} W. W. Hwu et al. The superblock: An effective structure for VLIW and superscalar compilation. The Journal of Supercomputing , 7(1), 1993.
[9]
{9} JGF. The Java Grande Forum Benchmark Suite. web cite: http://www.epcc.ed.ac.uk/javagrande/ seq/contents.html.
[10]
{10} B. Korel and J. W. Laski. Dynamic program slicing. Information Processing Letters, 29(3):155-163, 1988.
[11]
{11} B. Korel and J. Rilling. Application of dynamic slicing in program debugging. In International Workshop on Automatic Debugging, 1997.
[12]
{12} L. Larsen and M. Harrold. Slicing object-oriented software. In Proceedings of ACM/IEEE International Conference on Software Engineering (ICSE), pages 495-505, 2001.
[13]
{13} J. R. Larus. Whole program paths. In ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), pages 259-269, 1999.
[14]
{14} A. D. Lucia. Program slicing: Methods and applications. In IEEE International Workshop on Source Code Analysis and Manipulation, pages 142-149, 2001.
[15]
{15} C. G. Nevill-Manning and I. H. Witten. Linear-time, incremental hierarchy inference for compression. In Data Commpression Conference (DCC), pages 3-11, 1997.
[16]
{16} F. Ohata, K. Hirose, M. Fujii, and K. Inoue. A slicing method for object-oriented programs using lightweight dynamic information. In Asia-Pacific Software Engineering Conference, 2001.
[17]
{17} A. R. Pleszkun. Techniques for compressing programm address traces. In IEEE/ACM International Symposium on Microarchitecture (MICRO), pages 32-39, 1994.
[18]
{18} S. P. Reiss and M. Renieris. Generating Java trace data. In ACM Java Grande Conference, 2000.
[19]
{19} S. P. Reiss and M. Renieris. Encoding program executions. In ACM/IEEE International Conference on Software Engineering (ICSE), pages 221-230, 2001.
[20]
{20} F. Tip. A survey of program slicing techniques. Journal of Programming Languages, 3(3):121-189, 1995.
[21]
{21} M.Weiser. Program slicing. IEEE Transactions on Software Engineering, 10(4):352-357, 1984.
[22]
{22} B. Xu, Z. Chen, and H. Yang. Dynamic slicing object-oriented programs for debugging. In IEEE International Workshop on Source Code Analysis and Manipulation, 2002.
[23]
{23} X. Zhang, R. Gupta, and Y. Zhang. Precise dynamic slicing algorithms. In ACM/IEEE International Conference on Software Engineering (ICSE), pages 319-329, 2003.
[24]
{24} Y. Zhang and R. Gupta. Timestamped whole program path representation and its applications. In ACM SIGPLAN Conference on Programming Language Design and Implementation , pages 180-190, 2001.
[25]
{25} J. Zhao. Dependence analysis of Java bytecode. In IEEE Annual International Computer Software and Applications Conference, pages 486-491, 2000.
[26]
{26} J. Ziv and A. Lempel. A universal algorithm for sequential data compression. IEEE Transactions on Information Theory , 23(3):337-349, 1977.

Cited By

View all
  • (2019)Demystifying the combination of dynamic slicing and spectrum-based fault localizationProceedings of the 28th International Joint Conference on Artificial Intelligence10.5555/3367471.3367705(4760-4766)Online publication date: 10-Aug-2019
  • (2018)A program slicing-based method for effective detection of coincidentally correct test casesComputing10.1007/s00607-018-0591-z100:9(927-969)Online publication date: 1-Sep-2018
  • (2017)Hierarchical regression test case selection using slicingInternational Journal of Computational Science and Engineering10.1504/IJCSE.2017.08288214:2(179-197)Online publication date: 1-Jan-2017
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE '04: Proceedings of the 26th International Conference on Software Engineering
May 2004
761 pages
ISBN:0769521630

Sponsors

Publisher

IEEE Computer Society

United States

Publication History

Published: 23 May 2004

Check for updates

Qualifiers

  • Article

Conference

ICSE04
Sponsor:

Acceptance Rates

ICSE '04 Paper Acceptance Rate 58 of 436 submissions, 13%;
Overall Acceptance Rate 276 of 1,856 submissions, 15%

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)2
  • Downloads (Last 6 weeks)0
Reflects downloads up to 12 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2019)Demystifying the combination of dynamic slicing and spectrum-based fault localizationProceedings of the 28th International Joint Conference on Artificial Intelligence10.5555/3367471.3367705(4760-4766)Online publication date: 10-Aug-2019
  • (2018)A program slicing-based method for effective detection of coincidentally correct test casesComputing10.1007/s00607-018-0591-z100:9(927-969)Online publication date: 1-Sep-2018
  • (2017)Hierarchical regression test case selection using slicingInternational Journal of Computational Science and Engineering10.1504/IJCSE.2017.08288214:2(179-197)Online publication date: 1-Jan-2017
  • (2017)Dynamic Dependence SummariesACM Transactions on Software Engineering and Methodology10.1145/296844425:4(1-41)Online publication date: 9-Jan-2017
  • (2013)Partition-based regression verificationProceedings of the 2013 International Conference on Software Engineering10.5555/2486788.2486829(302-311)Online publication date: 18-May-2013
  • (2013)State-based model slicingACM Computing Surveys10.1145/2501654.250166745:4(1-36)Online publication date: 30-Aug-2013
  • (2013)Improving efficiency of dynamic analysis with dynamic dependence summariesProceedings of the 28th IEEE/ACM International Conference on Automated Software Engineering10.1109/ASE.2013.6693066(59-69)Online publication date: 11-Nov-2013
  • (2012)DARWINACM Transactions on Software Engineering and Methodology10.1145/2211616.221162221:3(1-29)Online publication date: 3-Jul-2012
  • (2010)Extracting and answering why and why not questions about Java program outputACM Transactions on Software Engineering and Methodology10.1145/1824760.182476120:2(1-36)Online publication date: 8-Sep-2010
  • (2010)BPGenProceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 210.1145/1810295.1810351(271-274)Online publication date: 1-May-2010
  • Show More Cited By

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