Title :
Heap cloning: Enabling dynamic symbolic execution of java programs
Author :
Anand, Saswat ; Harrold, Mary Jean
Author_Institution :
Georgia Inst. of Technol., Atlanta, GA, USA
Abstract :
The dynamic symbolic-execution technique can automatically perform symbolic execution of programs that use problematic features of Java, such as native methods. However, to compute precise symbolic execution, the technique requires manual effort to specify models for problematic code. Furthermore, existing approaches to perform symbolic execution either cannot be extended to perform dynamic symbolic execution or incur significant imprecision. In this paper, we present a novel program-transformation technique called heap cloning. Heap cloning transforms a program in such a way that dynamic symbolic execution of the transformed program results in the same path constraints as dynamic symbolic execution of the original program. However, symbolic execution of the transformed program produces feedback on where imprecision is introduced, and that feedback can reduce the manual effort required to build models. Furthermore, such transformation can enable existing approaches to perform symbolic execution systems to overcome their limitations. In this paper, we also present a system, called Cinger, that leverages heap cloning, and that we used to perform an empirical evaluation. The empirical evaluation shows that Cinger can compute precise path constraints, and requires little (if any) manual effort for a set of large real-world programs.
Keywords :
Java; program diagnostics; program interpreters; software performance evaluation; Cinger; Java programs; dynamic symbolic-execution technique; heap cloning; program-analysis technique; program-transformation technique; Cloning; Computational modeling; Concrete; Instruments; Java; Libraries; Manuals;
Conference_Titel :
Automated Software Engineering (ASE), 2011 26th IEEE/ACM International Conference on
Conference_Location :
Lawrence, KS
Print_ISBN :
978-1-4577-1638-6
DOI :
10.1109/ASE.2011.6100071