skip to main content
10.1145/2823363.2823368acmconferencesArticle/Chapter ViewAbstractPublication PagesicseConference Proceedingsconference-collections
short-paper

Recovering execution data from incomplete observations

Published: 26 October 2015 Publication History

Abstract

Due to resource constraints, tracing production applications often results in incomplete data. Nevertheless, developers ideally want answers to queries about the program's execution beyond data explicitly gathered. For example, a developer may ask whether a particular program statement executed during the run corresponding to a given failure report. In this work, we investigate the problem of determining whether each statement in a program executed, did not execute, or may have executed, given a set of (possibly-incomplete) observations. Using two distinct formalisms, we propose two solutions to this problem. The first formulation represents observations as regular languages, and computes intersections over these languages using finite-state acceptors. The second formulation encodes the problem as a set of Boolean constraints, and uses answer set programming to solve the constraints.

References

[1]
H. Agrawal. Dominators, super blocks, and program coverage. In POPL, 1994.
[2]
C. Allauzen, M. Riley, J. Schalkwyk, W. Skut, and M. Mohri. OpenFst: A general and e fficient weighted finite-state transducer library. In CIAA, 2007.
[3]
R. Alur and P. Madhusudan. Adding nesting structure to words. J. ACM, 56(3), 2009.
[4]
P. Anderson, T. W. Reps, and T. Teitelbaum. Design and implementation of a fine-grained software inspection tool. IEEE Trans. Software Eng., 29(8):721–733, 2003.
[5]
T. Ball and J. R. Larus. Optimally profiling and tracing programs. TOPLAS, 1994.
[6]
T. Ball and J. R. Larus. E fficient path profiling. In MICRO, 1996.
[7]
G. Bruns and P. Godefroid. Generalized model checking: Reasoning about partial state spaces. In CONCUR, 2000.
[8]
Y. Cao, H. Zhang, and S. Ding. SymCrash: selective recording for reproducing crashes. In ASE, 2014.
[9]
B. Gauf and E. Dustin. The case for automated software testing. Journal of Software Technology, 10(3):29–34, 2007.
[10]
M. Gebser, R. Kaminski, A. König, and T. Schaub. Advances in gringo series 3. In LPNMR, 2011.
[11]
M. Gebser, B. Kaufmann, and T. Schaub. Conflict-driven answer set solving: From theory to practice. Artif. Intell., 187: 52–89, 2012.
[12]
B. Hailpern and P. Santhanam. Software debugging, testing, and verification. IBM Syst. J., 41(1):4–12, Jan. 2002.
[13]
W. Jin and A. Orso. Bugredux: reproducing field failures for in-house debugging. In ICSE, 2012.
[14]
B. Liblit, A. Aiken, A. X. Zheng, and M. I. Jordan. Bug isolation via remote program sampling. In PLDI, 2003.
[15]
V. W. Marek and M. Truszczynski. Stable models and an alternative logic programming paradigm. CoRR, 1998.
[16]
P. Ohmann and B. Liblit. Lightweight control-flow instrumentation and postmortem analysis in support of debugging. In ASE, 2013.
[17]
T. Reps, A. Loginov, and M. Sagiv. Semantic minimization of 3-valued propositional formulae. In LICS, 2002.
[18]
T. W. Reps. Solving demand versions of interprocedural analysis problems. In CC, 1994.
[19]
G. Rothermel, S. Elbaum, A. Kinneer, and H. Do. Software– artifact infrastructure repository, Sept. 2006.
[20]
Y. Smaragdakis and M. Bravenboer. Using Datalog for fast and easy program analysis. In Datalog 2010. Revised Selected Papers, 2011.
[21]
G. Tassey. The economic impacts of inadequate infrastructure for software testing. NIST, RTI Project, 7007(011), 2002.
[22]
M. M. Tikir and J. K. Hollingsworth. E fficient online computation of statement coverage. Journal of Systems and Software, 78(2), 2005.
[23]
B. van Fraassen. Singular terms, truth-value gaps, and free logic. J. Phil., 63(17):481–495, Sept. 1966.
[24]
G. Yorsh, T. Reps, M. Sagiv, and R. Wilhelm. Logical characterizations of heap abstractions. Trans. on Comp. Logic, 8(1), 2007.
[25]
D. Yuan, H. Mai, W. Xiong, L. Tan, Y. Zhou, and S. Pasupathy. SherLog: error diagnosis by connecting clues from run-time logs. In ASPLOS, 2010.
[26]
D. Yuan, J. Zheng, S. Park, Y. Zhou, and S. Savage. Improving software diagnosability via log enhancement. In ASPLOS, 2011.
[27]
C. Zamfir and G. Candea. Execution synthesis: a technique for automated software debugging. In EuroSys, 2010.
[28]
Introduction Two Formulations Automata Answer Set Programming (ASP) Evaluation Related Work Conclusions and Future Work

Cited By

View all
  • (2021)Self-Healing Event LogsIEEE Transactions on Knowledge and Data Engineering10.1109/TKDE.2019.295652033:6(2750-2763)Online publication date: 1-Jun-2021
  • (2021)Applying Automated Program Repair to Dataflow Programming Languages2021 IEEE/ACM International Workshop on Genetic Improvement (GI)10.1109/GI52543.2021.00013(21-22)Online publication date: May-2021
  • (2017)Control-flow recovery from partial failure reportsACM SIGPLAN Notices10.1145/3140587.306236852:6(390-405)Online publication date: 14-Jun-2017
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM Conferences
WODA 2015: Proceedings of the 13th International Workshop on Dynamic Analysis
October 2015
38 pages
ISBN:9781450339094
DOI:10.1145/2823363
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: 26 October 2015

Permissions

Request permissions for this article.

Check for updates

Author Tags

  1. Debugging
  2. execution tracing
  3. program coverage

Qualifiers

  • Short-paper

Funding Sources

Conference

SPLASH '15
Sponsor:

Upcoming Conference

ICSE 2025

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

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

Other Metrics

Citations

Cited By

View all
  • (2021)Self-Healing Event LogsIEEE Transactions on Knowledge and Data Engineering10.1109/TKDE.2019.295652033:6(2750-2763)Online publication date: 1-Jun-2021
  • (2021)Applying Automated Program Repair to Dataflow Programming Languages2021 IEEE/ACM International Workshop on Genetic Improvement (GI)10.1109/GI52543.2021.00013(21-22)Online publication date: May-2021
  • (2017)Control-flow recovery from partial failure reportsACM SIGPLAN Notices10.1145/3140587.306236852:6(390-405)Online publication date: 14-Jun-2017
  • (2017)Control-flow recovery from partial failure reportsProceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation10.1145/3062341.3062368(390-405)Online publication date: 14-Jun-2017
  • (2016)Optimizing customized program coverageProceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering10.1145/2970276.2970351(27-38)Online publication date: 25-Aug-2016

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