DocumentCode :
175528
Title :
Concolic Fault Abstraction
Author :
Chanseok Oh ; Schaf, Martin ; Schwartz-Narbonne, Daniel ; Wies, Thomas
fYear :
2014
fDate :
28-29 Sept. 2014
Firstpage :
135
Lastpage :
144
Abstract :
An integral part of all debugging activities is the task of diagnosing the cause of an error. Most existing fault diagnosis techniques rely on the availability of high quality test suites because they work by comparing failing and passing runs to identify the error cause. This limits their applicability. One alternative are techniques that statically analyze an error trace of the program without relying on additional passing runs to compare against. Particularly promising are novel proof-based approaches that leverage the advances in automated theorem proving to obtain an abstraction of the program that aids fault diagnostics. However, existing proof-based approaches still have practical limitations such as reduced scalability and dependence on complex mathematical models of programs. Such models are notoriously difficult to develop for real-world programs. Inspired by concolic testing, we propose a novel algorithm that integrates concrete execution and symbolic reasoning about the error trace to address these challenges. Specifically, we execute the error trace to obtain intermediate program states that allow us to split the trace into smaller fragments, each of which can be analyzed in isolation using an automated theorem prover. Moreover, we show how this approach can avoid complex logical encodings when reasoning about traces in low-level C programs. We have conducted an experiment where we applied our new algorithm to error traces generated from faulty versions of UNIX utils such as gzip and sed. Our experiment indicates that our concolic fault abstraction scales to real-world error traces and generates useful error diagnoses.
Keywords :
program debugging; program diagnostics; program testing; reasoning about programs; theorem proving; UNIX; automated theorem prover; complex logical encodings; complex mathematical models; concolic fault localization; concolic testing; debugging activity; fault diagnosis techniques; high quality test; intermediate program states; low-level C programs; program error trace; proof-based approaches; symbolic reasoning; Abstracts; Cognition; Concrete; Debugging; Encoding; Fault diagnosis; Vectors; concolic execution; debugging; fault localization; interpolation;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Source Code Analysis and Manipulation (SCAM), 2014 IEEE 14th International Working Conference on
Conference_Location :
Victoria, BC
Type :
conf
DOI :
10.1109/SCAM.2014.22
Filename :
6975647
Link To Document :
بازگشت