skip to main content
10.1145/1085130.1085134acmconferencesArticle/Chapter ViewAbstractPublication PagesaadebugConference Proceedingsconference-collections
Article

Automated bug isolation via program chipping

Published: 19 September 2005 Publication History

Abstract

This paper introduces program chipping, a simple yet effective technique to isolate bugs. This technique automatically removes or chips away parts of a program so that the part that contributes to some symptomatic output becomes more apparent to the user. Program chipping is similar in spirit to traditional program slicing and debugging techniques, but chipping uses very simple techniques based on the syntactic structure of the program. We have developed a chipping tool for Java programs, called ChipperJ, and have run it on a variety of small to large programs, including a Java compiler, looking for various symptoms. The results are promising. The reduced program is generally about 20-35\% of the size of the original. ChipperJ takes less than an hour on large programs to perform this reduction; even if it took overnight, that would be reasonable if it saves the developer time.

References

[1]
Proceedings of the ACM SIGPLAN 1990 Conference on Programming Language Design and Implementation, White Plains, NY, June 20--22 1990.
[2]
Proceedings of the ACM SIGPLAN 1991 Conference on Programming Language Design and Implementation, Toronto, Ontario, Canada, June 26--28 1991.
[3]
Proceedings of the 2001 ACM SIGPLAN-SIGSOFT Workshop on Program Analysis For Software Tools and Engineering (PASTE'01), Snowbird, Utah, USA, June 18--19 2001. ACM.
[4]
G. Agrawal and L. Guo. Evaluating explicitly context-sensitive program slicing. In ACM PASTE:2001, pages 6--12.
[5]
H. Agrawal, R. A. DeMillo, and E. H. Spafford. Debugging with dynamic slicing and backtracking. Software---Practice and Experience, 23(6):589--616, 1993.
[6]
H. Agrawal and J. Horgan. Dynamic program slicing. In ACM PLDI1990, pages 246--256.
[7]
Applied Research. xslice: A tool for program debugging. http://xsuds.argreenhouse.com/html-man/xslice.html.
[8]
Bandera Project. The Bandera slicer. http://bandera.projects.cis.ksu.edu/.
[9]
T. W. Chan and A. Lakhotia. Debugging program failure exhibited by voluminous data. Software Maintenance: Research and Practice, 10:111--150, 1998.
[10]
T. Y. Chen and Y. Y. Cheung. On program dicing. Journal of Software Maintenance, 9(1):33--46, 1997.
[11]
F. Cornelis. Linux Input Replay. http://www.elis.rug.ac.be/ fcorneli/.
[12]
R. DeMillo, R. Lipton, and F. Sayward. Hints on test data selection: Help for the practicing programmer. IEEE Transactions on Computers, 12(4):34--41, Apr. 1978.
[13]
R. A. DeMillo, H. Pan, and E. H. Spafford. Failure and fault analysis for software debugging. In Proceedings of the 20th IEEE International Conference on Computer Software and Applications (COMPSAC 97), pages 515--521, Aug. 1997.
[14]
eclipse.org. The Eclipse development environment. http://www.eclipse.org.
[15]
P. Fritzson, T. Gyimothy, M. Kamkar, and N. Shahmehri. Generalized algorithmic debugging and testing. In ACM PLDI1991, pages 317--326.
[16]
R. E. Griswold and M. T. Griswold. The Icon Programming Language. Peer-to-Peer Communications, third edition, 1996. http://www.cs.arizona.edu/icon/lb3.htm.
[17]
W. G. Griswold. Making slicing practical: the final mile. In ACM PASTE: 2001.
[18]
A. Habra. The General String library. http://www.tek271.com/free/gsoverview.html.
[19]
R. Hierons, M. Harman, and S. Danicic. Using program slicing to assist in the detection of equivalent mutants. Software Testing, Verification and Reliability, 9(4):233--262, Dec. 1999.
[20]
S. Horwitz. Identifying the semantic and textual differences between two versions of a program. In ACM PLDI1990, pages 234--245.
[21]
S. Horwitz, T. Reps, and D. Binkley. Interprocedural slicing using dependence graphs. ACM Transactions on Programming Languages and Systems, 12(1):26--60, Jan. 1990.
[22]
J. A. Jones, M. J. Harrold, and J. Stasko. Visualization of test information to assist fault localization. In Proceedings of the 24th IEEE International Conference on Software Engineering (ICSE-02), pages 467--477, Orlando, FL, May 2002.
[23]
T. J. LeBlanc and J. M. Mellor-Crummey. Debugging parallel programs with instant replay. IEEE Transactions on Computers, 36(4):471--482, 1987.
[24]
T. Lindholm and F. Yellin. The JavaTM Virtual Machine Specification. Sun Microsystems, second edition, 2005. JVM.
[25]
G. Misherghi and Z. Su. HDD: Hierarchical delta debugging. 2005. in preparation.
[26]
J. Offutt and R. Untch. Mutation 2000: Uniting the orthogonal. In Proceedings of Mutation 2000: Mutation Testing in the Twentieth and the Twenty First Centuries, pages 45--55, San Jose, CA, Oct. 2000.
[27]
R. A. Olsson. Reproducible execution of SR programs. Concurrency---Practice and Experience, 11(9):479--507, August 1999.
[28]
M. Ronsse and K. D. Bosschere. Recplay: a fully integrated practical record/replay system. ACM Transactions on Computer Systems, 17(2):133--152, May 1999.
[29]
SimCon. FPT -- the Fortran Partner. http://www.simcon.uk.com/.
[30]
C. D. Sterling. Automated bug isolation via program chipping. Master's thesis, Dept. of Computer Science, University of California, Davis, August 2005. in preparation.
[31]
Sun Microsystems. The Java bug database. http://bugs.sun.com/bugdatabase/index.jsp.
[32]
F. Tip. A survey of program slicing techniques. Journal of Programming Languages, 3:121--189, 1995.
[33]
G. A. Venkatesh. The semantic approach to program slicing. In ACM PLDI1991, pages 107--119.
[34]
M. Vertes. XLAB: a tool to automate graphical user interfaces. Linux Weekly News, May 1998. http://mvertes.free.fr/xlab/xlab.html.
[35]
M. Weiser. Program slicing. IEEE Transactions on Software Engineering, 10(4):352--357, 1984.
[36]
M. Weiser and J. R. Lyle. Experiments on slicing-based debugging aids. In Empirical Studies for Programmers. Ablex Publishing Corporation, 1986.
[37]
A. Zeller and R. Hildebrandt. Simplifying and isolating failure-inducing input. IEEE Transactions on Software Engineering, 28(2):183--200, Feb. 2002.

Cited By

View all
  • (2023)Slicing‐Based Techniques for Software Fault LocalizationHandbook of Software Fault Localization10.1002/9781119880929.ch3(135-200)Online publication date: 21-Apr-2023
  • (2023)Software Fault Localization: an Overview of Research, Techniques, and ToolsHandbook of Software Fault Localization10.1002/9781119880929.ch1(1-117)Online publication date: 21-Apr-2023
  • (2016)A Survey on Software Fault LocalizationIEEE Transactions on Software Engineering10.1109/TSE.2016.252136842:8(707-740)Online publication date: 1-Aug-2016
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
AADEBUG'05: Proceedings of the sixth international symposium on Automated analysis-driven debugging
September 2005
172 pages
ISBN:1595930507
DOI:10.1145/1085130
Permission to make digital or hard copies of all or part of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Sponsors

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 19 September 2005

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. bug isolation
  2. data slicing
  3. debugging
  4. program chipping
  5. program slicing

Qualifiers

  • Article

Conference

AADEBUG05

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)3
  • Downloads (Last 6 weeks)1
Reflects downloads up to 18 Feb 2025

Other Metrics

Citations

Cited By

View all
  • (2023)Slicing‐Based Techniques for Software Fault LocalizationHandbook of Software Fault Localization10.1002/9781119880929.ch3(135-200)Online publication date: 21-Apr-2023
  • (2023)Software Fault Localization: an Overview of Research, Techniques, and ToolsHandbook of Software Fault Localization10.1002/9781119880929.ch1(1-117)Online publication date: 21-Apr-2023
  • (2016)A Survey on Software Fault LocalizationIEEE Transactions on Software Engineering10.1109/TSE.2016.252136842:8(707-740)Online publication date: 1-Aug-2016
  • (2015)State dependency probabilistic model for fault localizationInformation and Software Technology10.1016/j.infsof.2014.05.02257(430-445)Online publication date: Jan-2015
  • (2011)Comprehension oriented software fault locationProceedings of 2011 International Conference on Computer Science and Network Technology10.1109/ICCSNT.2011.6181971(340-343)Online publication date: Dec-2011
  • (2010)IEEE Reliability Society Technical Operations Annual Technical Report for 2010IEEE Transactions on Reliability10.1109/TR.2010.205219059:3(449-482)Online publication date: Sep-2010
  • (2007)Automated bug isolation via program chippingSoftware—Practice & Experience10.5555/1284918.128492137:10(1061-1086)Online publication date: 1-Aug-2007
  • (2006)HDDProceedings of the 28th international conference on Software engineering10.1145/1134285.1134307(142-151)Online publication date: 28-May-2006
  • (2006)Automated bug isolation via program chippingSoftware: Practice and Experience10.1002/spe.79837:10(1061-1086)Online publication date: 19-Dec-2006

View Options

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Figures

Tables

Media

Share

Share

Share this Publication link

Share on social media