skip to main content
10.1145/1572272.1572301acmconferencesArticle/Chapter ViewAbstractPublication PagesisstaConference Proceedingsconference-collections
research-article

Penumbra: automatically identifying failure-relevant inputs using dynamic tainting

Published: 19 July 2009 Publication History

Abstract

Most existing automated debugging techniques focus on reducing the amount of code to be inspected and tend to ignore an important component of software failures: the inputs that cause the failure to manifest. In this paper, we present a new technique based on dynamic tainting for automatically identifying subsets of a program's inputs that are relevant to a failure. The technique (1) marks program inputs when they enter the application, (2) tracks them as they propagate during execution, and (3) identifies, for an observed failure, the subset of inputs that are potentially relevant for debugging that failure. To investigate feasibility and usefulness of our technique, we created a prototype tool, PENUMBRA, and used it to evaluate our technique on several failures in real programs. Our results are promising, as they show that PENUMBRA can point developers to inputs that are actually relevant for investigating a failure and can be more practical than existing alternative approaches.

References

[1]
H. Agrawal, J. Horgan, S. London, and W. Wong. Fault localization using execution slices and dataflow tests. In ISSRE '95: Proceedings of the 6th International Symposium on Software Reliability Engineering, pages 143--151, 1995.
[2]
M. Burger and A. Zeller. Replaying and isolating failing multi-object interactions. In WODA '08: Proceedings of the 6th International Workshop on Dynamic Analysis, 2008.
[3]
T. W. Chan and A. Lakhotia. Debugging program failure exhibited by voluminous data. Journal of Software Maintenance, 10(2):111--150, 1998.
[4]
R. Y. Chang, A. Podgurski, and J. Yang. Finding what's not there: A new approach to revealing neglected conditions in software. In ISSTA '07: Proceedings of the 2007 International Symposium on Software Testing and Analysis, pages 163--173, 2007.
[5]
J. Clause, I. Doudalis, A. Orso, and M. Prvulovic. Effective memory protection using dynamic tainting. In ASE '07: Proceedings of the 22nd IEEE/ACM International Conference on Automated Software Engineering, pages 284--292, 2007.
[6]
J. Clause, W. Li, and A. Orso. Dytan: A generic dynamic taint analysis framework. In ISSTA '07: Proceedings of the 2007 International Symposium on Software Testing and Analysis, pages 196--206, 2007.
[7]
J. Clause and A. Orso. A technique for enabling and supporting debugging of field failures. In ICSE '07: Proceedings of the 29th International Conference on Software Engineering, pages 261--270, 2007.
[8]
N. Gupta, H. He, X. Zhang, and R. Gupta. Locating faulty code using failure-inducing chops. In ASE '05: Proceedings of the 20th IEEE/ACM International Conference on Automated Software Engineering, pages 263--272, 2005.
[9]
W. Ji, J. Xiao-xia, L. Chang, Y. Hai-yan, L. Chao, and J. Mao-zhong. A statistical model to locate faults at input level. In ASE '04: Proceedings of the 19th IEEE International Conference on Automated Software Engineering, pages 274--277, 2004.
[10]
J. A. Jones and M. J. Harrold. Empirical evaluation of the tarantula automatic fault-localization technique. In ASE '05: Proceedings of the 20th IEEE/ACM International Conference on Automated Software Engineering, pages 273--282, 2005.
[11]
J. A. Jones, M. J. Harrold, and J. Stasko. Visualization of test information to assist fault localization. In ICSE '02: Proceedings of the 24th International Conference on Software Engineering, pages 467--477, 2002.
[12]
B. Korel and J. Laski. Dynamic program slicing. Information Processing Letters, 29(3):155--163, 1988.
[13]
B. Liblit, M. Naik, A. X. Zheng, A. Aiken, and M. I. Jordan. Scalable statistical bug isolation. In PLDI '05 Proceedings of the 2005 ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 15--26, 2005.
[14]
S. Lu, Z. Li, F. Qin, L. Tan, P. Zhou, and Y. Zhou. Bugbench: Benchmarks for evaulating bug detection tools. In Bugs 2005: Workshop on the Evaluation of Software Defect Detection Tools, 2005.
[15]
W. Masri, A. Podgurski, and D. Leon. Detecting and debugging insecure information flows. In ISSRE '04 Proceedings of the 15th International Symposium on Software Reliability Engineering, pages 198--209, 2004.
[16]
S. McCamant and M. D. Ernst. Quantitative information flow as network flow capacity. In PLDI '08: Proceedings of the 2008 ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 193--205 2008.
[17]
G. Misherghi and Z. Su. Hdd: Hierarchical delta debugging. In ICSE '06: Proceedings of the 28th International Conference on Software Engineering, pages 142--151, 2006.
[18]
P. A. Nainar, T. Chen, J. Rosin, and B. Liblit. Statistical debugging using compound boolean predicates. In ISSTA '07: Proceedings of the 2007 International Symposium on Software Testing and Analysis, pages 5--15, 2007.
[19]
M. Renieris and S. Reiss. Fault localization with nearest neighbor queries. In ASE '03: Proceedings of the 18th IEEE International Conference on Automated Software Engineering, pages 30--39, 2003.
[20]
J. Seward and N. Nethercote. Using Valgrind to detect undefined value errors with bit-precision. In ATEC '05: Proceedings of the 2005 USENIX Annual Technical Conference, 2005.
[21]
G. Tassey. The economic impacts of inadequate infrastructure for software testing. Technical Report 7007.011, National Institute of Standards and Technology, 2002.
[22]
J. Tucek, S. Lu, C. Huang, S. Xanthos, and Y. Zhou. Triage: Diagnosing production run failures at the user's site. In SOSP '07: Proceedings of 21st ACM SIGOPS Symposium on Operating Systems Principles, pages 131--144, 2007.
[23]
I. Vessey. Expertise in debugging computer programs. International Journal of Man-Machine Studies: A Process Analysis, 23(5):459--494, 1985.
[24]
M. Weiser. Program slicing. In ICSE '81: Proceedings of the 5th International Conference on Software Engineering, pages 439--449, 1981.
[25]
A. Zeller and R. Hildebrandt. Simplifying and isolating failure-inducing input. IEEE Transactions on Software Engineering, 28(2):183--200, 2002.
[26]
X. Zhang, H. He, N. Gupta, and R. Gupta. Experimental evaluation of using dynamic slices for fault location. In AADEBUG'05: Proceedings of the 6th International symposium on Automated Analysis-driven Debugging, pages 33--42, 2005.
[27]
X. Zhang, S. Tallam, and R. Gupta. Dynamic slicing long running programs through execution fast forwarding. In SIGSOFT '06/FSE-14: Proceedings of the 14th ACM SIGSOFT International Symposium on Foundations of Software Engineering, pages 81--91, 2006.

Cited By

View all

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
ISSTA '09: Proceedings of the eighteenth international symposium on Software testing and analysis
July 2009
306 pages
ISBN:9781605583389
DOI:10.1145/1572272
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 July 2009

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. automated debugging
  2. dynamic information flow
  3. dynamic tainting
  4. failure-relevant inputs

Qualifiers

  • Research-article

Conference

ISSTA '09

Acceptance Rates

Overall Acceptance Rate 58 of 213 submissions, 27%

Upcoming Conference

ISSTA '25

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)7
  • Downloads (Last 6 weeks)2
Reflects downloads up to 01 Jan 2025

Other Metrics

Citations

Cited By

View all

View Options

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