Information Processing Letters
Interprocedural slicing using dependence graphs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Explaining type errors in polymorphic languages
ACM Letters on Programming Languages and Systems (LOPLAS)
Precise interprocedural dataflow analysis via graph reachability
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Science of Computer Programming
Eraser: a dynamic data race detector for multithreaded programs
ACM Transactions on Computer Systems (TOCS)
Yesterday, my program worked. Today, it does not. Why?
ESEC/FSE-7 Proceedings of the 7th European software engineering conference held jointly with the 7th ACM SIGSOFT international symposium on Foundations of software engineering
Bandera: extracting finite-state models from Java source code
Proceedings of the 22nd international conference on Software engineering
A slicing-based approach for locating type errors
ACM Transactions on Software Engineering and Methodology (TOSEM)
Dynamically Discovering Likely Program Invariants to Support Program Evolution
IEEE Transactions on Software Engineering - Special issue on 1999 international conference on software engineering
Automatic predicate abstraction of C programs
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
The SLAM project: debugging system software via static analysis
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Verisim: Formal Analysis of Network Simulations
IEEE Transactions on Software Engineering
Compositional explanation of types and algorithmic debugging of type errors
Proceedings of the sixth ACM SIGPLAN international conference on Functional programming
A system and language for building system-specific, static analyses
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Finding the source of type errors
POPL '86 Proceedings of the 13th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
A maximum-flow approach to anomaly isolation in unification-based incremental type inference
POPL '86 Proceedings of the 13th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Algorithmic Program DeBugging
Tracking down software bugs using automatic anomaly detection
Proceedings of the 24th International Conference on Software Engineering
Bebop: A Symbolic Model Checker for Boolean Programs
Proceedings of the 7th International SPIN Workshop on SPIN Model Checking and Software Verification
Logic Verification of ANSI-C Code with SPIN
Proceedings of the 7th International SPIN Workshop on SPIN Model Checking and Software Verification
Fate and Free Will in Error Traces
TACAS '02 Proceedings of the 8th International Conference on Tools and Algorithms for the Construction and Analysis of Systems
Automated Generation and Analysis of Attack Graphs
SP '02 Proceedings of the 2002 IEEE Symposium on Security and Privacy
PSE: explaining program failures via postmortem static analysis
Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
Explaining abstract counterexamples
Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
Correlation exploitation in error ranking
Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
Generating error traces from verification-condition counterexamples
Science of Computer Programming - Formal methods for components and objects pragmatic aspects and applications
Error traces in model-based debugging of hardware description languages
Proceedings of the sixth international symposium on Automated analysis-driven debugging
Automated path generation for software fault localization
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
HDD: hierarchical delta debugging
Proceedings of the 28th international conference on Software engineering
Automated testing in software engineering: using ant colony and self-regulated swarms
MS'06 Proceedings of the 17th IASTED international conference on Modelling and simulation
Proceedings of the 5th international conference on Generative programming and component engineering
Flow-insensitive type qualifiers
ACM Transactions on Programming Languages and Systems (TOPLAS)
Thorough static analysis of device drivers
Proceedings of the 1st ACM SIGOPS/EuroSys European Conference on Computer Systems 2006
Automated known problem diagnosis with event traces
Proceedings of the 1st ACM SIGOPS/EuroSys European Conference on Computer Systems 2006
An Automated Approach for the Interpretation of Counter-Examples
Electronic Notes in Theoretical Computer Science (ENTCS)
Automated Fault Localization for C Programs
Electronic Notes in Theoretical Computer Science (ENTCS)
Context-aware statistical debugging: from bug predictors to faulty control flow paths
Proceedings of the twenty-second IEEE/ACM international conference on Automated software engineering
Flow-insensitive static analysis for detecting integer anomalies in programs
SE'07 Proceedings of the 25th conference on IASTED International Multi-Conference: Software Engineering
Effective blame for information-flow violations
Proceedings of the 16th ACM SIGSOFT International Symposium on Foundations of software engineering
Automatic generation of local repairs for Boolean programs
Proceedings of the 2008 International Conference on Formal Methods in Computer-Aided Design
A decision procedure for subset constraints over regular languages
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
HOLMES: Effective statistical debugging via efficient path profiling
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
Automatically finding patches using genetic programming
ICSE '09 Proceedings of the 31st International Conference on Software Engineering
A genetic programming approach to automated software repair
Proceedings of the 11th Annual conference on Genetic and evolutionary computation
Explaining Counterexamples Using Causality
CAV '09 Proceedings of the 21st International Conference on Computer Aided Verification
Darwin: an approach for debugging evolving programs
Proceedings of the the 7th joint meeting of the European software engineering conference and the ACM SIGSOFT symposium on The foundations of software engineering
A formalization of program debugging in the situation calculus
AAAI'08 Proceedings of the 23rd national conference on Artificial intelligence - Volume 1
ASE '08 Proceedings of the 2008 23rd IEEE/ACM International Conference on Automated Software Engineering
Making the Most of BMC Counterexamples
Electronic Notes in Theoretical Computer Science (ENTCS)
SherLog: error diagnosis by connecting clues from run-time logs
Proceedings of the fifteenth edition of ASPLOS on Architectural support for programming languages and operating systems
Counterexamples in probabilistic model checking
TACAS'07 Proceedings of the 13th international conference on Tools and algorithms for the construction and analysis of systems
What went wrong: explaining counterexamples
SPIN'03 Proceedings of the 10th international conference on Model checking software
Formal modeling and verification of high-availability protocol for network security appliances
ATVA'07 Proceedings of the 5th international conference on Automated technology for verification and analysis
Graph queries through datalog optimizations
Proceedings of the 12th international ACM SIGPLAN symposium on Principles and practice of declarative programming
JRF-E: using model checking to give advice on eliminating memory model-related bugs
Proceedings of the IEEE/ACM international conference on Automated software engineering
A trace simplification technique for effective debugging of concurrent programs
Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering
Proceedings of the eighteenth ACM SIGSOFT international symposium on Foundations of software engineering
Automatic error correction of java programs
FMICS'10 Proceedings of the 15th international conference on Formal methods for industrial critical systems
Life, death, and the critical transition: finding liveness bugs in systems code
NSDI'07 Proceedings of the 4th USENIX conference on Networked systems design & implementation
Proceedings of the 33rd International Conference on Software Engineering
Counter example-based error localization of behavior models
NFM'11 Proceedings of the Third international conference on NASA Formal methods
Cause clue clauses: error localization using maximum satisfiability
Proceedings of the 32nd ACM SIGPLAN conference on Programming language design and implementation
Are automated debugging techniques actually helping programmers?
Proceedings of the 2011 International Symposium on Software Testing and Analysis
Using debuggers to understand failed verification attempts
FM'11 Proceedings of the 17th international conference on Formal methods
Fault localization for data-centric programs
Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering
Bug-Assist: assisting fault localization in ANSI-C programs
CAV'11 Proceedings of the 23rd international conference on Computer aided verification
An efficient static trace simplification technique for debugging concurrent programs
SAS'11 Proceedings of the 18th international conference on Static analysis
Bug localization in test-driven development
Advances in Software Engineering
The boogie verification debugger
SEFM'11 Proceedings of the 9th international conference on Software engineering and formal methods
Path-Sensitive dataflow analysis with iterative refinement
SAS'06 Proceedings of the 13th international conference on Static Analysis
Abstract dependences for alarm diagnosis
APLAS'05 Proceedings of the Third Asian conference on Programming Languages and Systems
An object store model for diagnosing java programs
AI'05 Proceedings of the 18th Australian Joint conference on Advances in Artificial Intelligence
Journal of Computer and System Sciences
Diagnosing program errors with light-weighted specifications
IEA/AIE'06 Proceedings of the 19th international conference on Advances in Applied Artificial Intelligence: industrial, Engineering and Other Applications of Applied Intelligent Systems
On the complexity of error explanation
VMCAI'05 Proceedings of the 6th international conference on Verification, Model Checking, and Abstract Interpretation
Repair of boolean programs with an application to c
CAV'06 Proceedings of the 18th international conference on Computer Aided Verification
CAV'05 Proceedings of the 17th international conference on Computer Aided Verification
CHARME'05 Proceedings of the 13 IFIP WG 10.5 international conference on Correct Hardware Design and Verification Methods
Understanding the origin of alarms in ASTRÉE
SAS'05 Proceedings of the 12th international conference on Static Analysis
Explaining counterexamples using causality
Formal Methods in System Design
Whodunit? causal analysis for counterexamples
ATVA'06 Proceedings of the 4th international conference on Automated Technology for Verification and Analysis
Managing ad-hoc networks through the formal specification of service requirements
COORDINATION'06 Proceedings of the 8th international conference on Coordination Models and Languages
Preemption sealing for efficient concurrency testing
TACAS'10 Proceedings of the 16th international conference on Tools and Algorithms for the Construction and Analysis of Systems
Fundamentals of debugging using a resolution calculus
FASE'06 Proceedings of the 9th international conference on Fundamental Approaches to Software Engineering
Accurately choosing execution runs for software fault localization
CC'06 Proceedings of the 15th international conference on Compiler Construction
DARWIN: An approach to debugging evolving programs
ACM Transactions on Software Engineering and Methodology (TOSEM)
Automated error diagnosis using abductive inference
Proceedings of the 33rd ACM SIGPLAN conference on Programming Language Design and Implementation
Inferring definite counterexamples through under-approximation
NFM'12 Proceedings of the 4th international conference on NASA Formal Methods
Improving the effectiveness of spectra-based fault localization using specifications
Proceedings of the 27th IEEE/ACM International Conference on Automated Software Engineering
Counterexample explanation by anomaly detection
SPIN'12 Proceedings of the 19th international conference on Model Checking Software
SAS'07 Proceedings of the 14th international conference on Static Analysis
Automated feedback generation for introductory programming assignments
Proceedings of the 34th ACM SIGPLAN conference on Programming language design and implementation
Improving bug localization using correlations in crash reports
Proceedings of the 10th Working Conference on Mining Software Repositories
Current challenges in automatic software repair
Software Quality Control
CAV'13 Proceedings of the 25th international conference on Computer Aided Verification
Toward general diagnosis of static errors
Proceedings of the 41st ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages
Hi-index | 0.00 |
There is significant room for improving users' experiences with model checking tools. An error trace produced by a model checker can be lengthy and is indicative of a symptom of an error. As a result, users can spend considerable time examining an error trace in order to understand the cause of the error. Moreover, even state-of-the-art model checkers provide an experience akin to that provided by parsers before syntactic error recovery was invented: they report a single error trace per run. The user has to fix the error and run the model checker again to find more error traces.We present an algorithm that exploits the existence of correct traces in order to localize the error cause in an error trace, report a single error trace per error cause, and generate multiple error traces having independent causes. We have implemented this algorithm in the context of slam, a software model checker that automatically verifies temporal safety properties of C programs, and report on our experience using it to find and localize errors in device drivers. The algorithm typically narrows the location of a cause down to a few lines, even in traces consisting of hundreds of statements.