Title :
A Fixed-Point Algorithm for Automated Static Detection of Infinite Loops
Author :
Ibing, Andreas ; Mai, Alexandra
Author_Institution :
Dept. for IT Security, Tech. Univ. Munchen, Garching, Germany
Abstract :
We present an algorithm for automated detection of infinite loop bugs in programs. It relies on a Satisfiability Modulo Theories (SMT) solver backend and can be run conveniently with SMT-constrained symbolic execution. The algorithm detects infinite loop bugs for single-path, multi-path and nested loops. We prove soundness of the algorithm, i.e. There are no false positive detections of infinite loops. Part of the algorithm is a fixed-point based termination check for ´simple´ loops, whose soundness is a consequence of Brouwer´s fixed-point theorem. The algorithm further yields no false negative detections for context-sensitive detection of periodic loop orbits with sum of prefix iterations and periodicity of up to the analysis loop unroll depth (bounded completeness), if the SMT solver answers the fixed-point satisfiability query in time. We describe an example implementation as plug-in extension of Eclipse CDT. The implementation is validated with the infinite loop test cases from the Juliet test suite and benchmarks are provided.
Keywords :
computability; iterative methods; program control structures; program debugging; program diagnostics; program verification; Eclipse CDT; Juliet test suite; SMT solver backend; SMT-constrained symbolic execution; analysis loop unroll depth; automated static detection; bounded completeness; context-sensitive detection; fixed-point algorithm; fixed-point based termination check; fixed-point satisfiability query; fixed-point theorem; infinite loop bugs; infinite loop test cases; loop termination; multipath loops; nested loops; periodic loop orbits; periodicity; program bugs; satisfiability modulo theories solver; single-path loops; static analysis; sum of prefix iterations; Algorithm design and analysis; Computer bugs; Engines; Equations; Orbits; Software; Vectors; loop (non-) termination; static analysis; symbolic execution;
Conference_Titel :
High Assurance Systems Engineering (HASE), 2015 IEEE 16th International Symposium on
Conference_Location :
Daytona Beach Shores, FL
Print_ISBN :
978-1-4799-8110-6
DOI :
10.1109/HASE.2015.16