[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1109/ICSE.2009.5070506acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
Article

HOLMES: Effective statistical debugging via efficient path profiling

Published: 16 May 2009 Publication History

Abstract

Statistical debugging aims to automate the process of isolating bugs by profiling several runs of the program and using statistical analysis to pinpoint the likely causes of failure. In this paper, we investigate the impact of using richer program profiles such as path profiles on the effectiveness of bug isolation. We describe a statistical debugging tool called HOLMES that isolates bugs by finding paths that correlate with failure. We also present an adaptive version of HOLMES that uses iterative, bug-directed profiling to lower execution time and space overheads. We evaluate HOLMES using programs from the SIR benchmark suite and some large, real-world applications. Our results indicate that path profiles can help isolate bugs more precisely by providing more information about the context in which bugs occur. Moreover, bug-directed profiling can efficiently isolate bugs with low overheads, providing a scalable and accurate alternative to sparse random sampling.

References

[1]
The Apache Software Foundation. http://www.apache.org.
[2]
Codesurfer. http://www.grammatech.com/products/codesurfer/.
[3]
GCC: The GNU Compiler Collection. http://gcc.gnu.org.
[4]
Phoenix. http://research.microsoft.com/Phoenix.
[5]
SIR: Software-artifact Infrastructure Repository. http://sir.unl.edu/portal/index.html.
[6]
Windows update. http://windowsupdate.microsoft.com.
[7]
E. B. Allen, T. M. Khoshgoftaar, and Y. Chen. Measuring coupling and cohesion of software modules: an information-theory approach. In METRICS: Symposium on Software Metrics, pages 124-134, 2001.
[8]
G. Ammons and J. R. Larus. Improving data-flow analysis with path profile. In PLDI: Programming Language Design and Implementation, pages 72-84, 1998.
[9]
M. Arnold and B. Ryder. A framework for reducing the cost of instrumented code. In PLDI: Programming Language Design and Implementation, pages 168-179, 2001.
[10]
P. Arumuga Nainar, T. Chen, J. Rosin, and B. Liblit. Statistical debugging using compound Boolean predicates. In ISSTA: International Symposium on Software Testing and Analysis, pages 5-15, 2007.
[11]
T. Ball and J. R. Larus. Efficient path profiling. In MICRO: International Symposium on Microarchitecture, pages 46- 57, 1996.
[12]
T. Ball, M. Naik, and S. K. Rajamani. From symptom to cause: localizing errors in counterexample traces. In POPL: Principles of Programming Languages, pages 97- 105, 2003.
[13]
A. Beszedes, T. Gergely, S. Farago, T. Gyimothy, and F. Fischer. The dynamic function coupling metric and its use in software evolution. In Conference on Software Maintenance and Reengineering (CSMR), pages 103-112, 2007.
[14]
T. M. Chilimbi, A. V. Nori, and K. Vaswani. Quantifying the effectiveness of testing via efficient residual path profiling. In FSE: Foundations of Software Engineering, pages 545- 548, 2007.
[15]
H. Cleve and A. Zeller. Locating causes of program failures. In ICSE: International Conference on Software Engineering , pages 342-351, 2005.
[16]
M. Hirzel and T. M. Chilimbi. Bursty tracing: A framework for low overhead temporal profiling. In FDDO: Workshop on Feedback-Directed and Dynamic Optimization, 2001.
[17]
L. Jiang and Z. Su. Context-aware statistical debugging: From bug predictors to faulty control flow paths. In ASE '08: Automated Software Engineering, pages 184-193, 2007.
[18]
J. A. Jones and M. J. Harrold. Empirical evaluation of the tarantula automatic fault-localization technique. In ASE '05: Automated Software Engineering, pages 273-282, 2005.
[19]
J. A. Jones, M. J. Harrold, and J. Stasko. Visualization of test information to assist fault localization. In ICSE '02: International Conference on Software Engineering, pages 467- 477, 2002.
[20]
B. Liblit, A. Aiken, A. X. Zheng, and M. I. Jordan. Bug isolation via remote program sampling. In PLDI: Programming Language Design and Implementation, pages 141- 154, 2003.
[21]
B. Liblit, M. Naik, A. X. Zheng, A. Aiken, and M. I. Jordan. Scalable statistical bug isolation. In PLDI: Programming Language Design and Implementation, pages 15-26, 2005.
[22]
C. Liu, X. Yan, L. Fei, J. Han, and S. Midkiff. Sober: Statistical model-based bug localization. In FSE: Foundations of Software Engineering, 2005.
[23]
M. C. M. Fortin, Distinguished Engineer. Personal communication. 2007.
[24]
M. Renieris and S. Reiss. Fault localization with nearest neighbor queries, 2003.
[25]
K. Vaswani, A. V. Nori, and T. M. Chilimbi. Preferential path profiling: compactly numbering interesting paths. In POPL '07: Principles of Programming Languages, pages 351-362, 2007.

Cited By

View all
  • (2024)LTA: Control-Driven UAV Testing and Bug Localization with Flight Record DecompositionProceedings of the 22nd ACM Conference on Embedded Networked Sensor Systems10.1145/3666025.3699350(450-463)Online publication date: 4-Nov-2024
  • (2024)Traceback: A Fault Localization Technique for Molecular ProgramsProceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3650212.3652138(415-427)Online publication date: 11-Sep-2024
  • (2023)Assessing Effectiveness of Test Suites: What Do We Know and What Should We Do?ACM Transactions on Software Engineering and Methodology10.1145/363571333:4(1-32)Online publication date: 5-Dec-2023
  • Show More Cited By

Recommendations

Comments

Please enable JavaScript to view thecomments powered by Disqus.

Information & Contributors

Information

Published In

cover image ACM Conferences
ICSE '09: Proceedings of the 31st International Conference on Software Engineering
May 2009
643 pages
ISBN:9781424434534

Sponsors

Publisher

IEEE Computer Society

United States

Publication History

Published: 16 May 2009

Check for updates

Qualifiers

  • Article

Acceptance Rates

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)3
  • Downloads (Last 6 weeks)0
Reflects downloads up to 17 Dec 2024

Other Metrics

Citations

Cited By

View all
  • (2024)LTA: Control-Driven UAV Testing and Bug Localization with Flight Record DecompositionProceedings of the 22nd ACM Conference on Embedded Networked Sensor Systems10.1145/3666025.3699350(450-463)Online publication date: 4-Nov-2024
  • (2024)Traceback: A Fault Localization Technique for Molecular ProgramsProceedings of the 33rd ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3650212.3652138(415-427)Online publication date: 11-Sep-2024
  • (2023)Assessing Effectiveness of Test Suites: What Do We Know and What Should We Do?ACM Transactions on Software Engineering and Methodology10.1145/363571333:4(1-32)Online publication date: 5-Dec-2023
  • (2023)Variable-based Fault Localization via Enhanced Decision TreeACM Transactions on Software Engineering and Methodology10.1145/362474133:2(1-32)Online publication date: 18-Sep-2023
  • (2023)Adonis: Practical and Efficient Control Flow Recovery through OS-level TracesACM Transactions on Software Engineering and Methodology10.1145/360718733:1(1-27)Online publication date: 4-Jul-2023
  • (2023)Alligator in Vest: A Practical Failure-Diagnosis Framework via Arm Hardware FeaturesProceedings of the 32nd ACM SIGSOFT International Symposium on Software Testing and Analysis10.1145/3597926.3598106(917-928)Online publication date: 12-Jul-2023
  • (2023)Vidi: Record Replay for Reconfigurable HardwareProceedings of the 28th ACM International Conference on Architectural Support for Programming Languages and Operating Systems, Volume 310.1145/3582016.3582040(806-820)Online publication date: 25-Mar-2023
  • (2023)Automatically Localizing Dynamic Code Generation Bugs in JIT Compiler Back-EndProceedings of the 32nd ACM SIGPLAN International Conference on Compiler Construction10.1145/3578360.3580260(145-155)Online publication date: 17-Feb-2023
  • (2023)Diagnosing Kernel Concurrency Failures with AITIAProceedings of the Eighteenth European Conference on Computer Systems10.1145/3552326.3567486(94-110)Online publication date: 8-May-2023
  • (2022)TransRepair: Context-aware Program Repair for Compilation ErrorsProceedings of the 37th IEEE/ACM International Conference on Automated Software Engineering10.1145/3551349.3560422(1-13)Online publication date: 10-Oct-2022
  • Show More Cited By

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