DocumentCode :
1637345
Title :
Poster: Static Detection of Configuration-Dependent Bugs in Configurable Software
Author :
Al-Kofahi, Jafar ; Lisong Guo ; Nguyen, Hung Viet ; Nguyen, Hoan Anh ; Nguyen, Tien N.
Author_Institution :
Electr. & Comput. Eng. Dept., Iowa State Univ., Ames, IA, USA
Volume :
2
fYear :
2015
Firstpage :
795
Lastpage :
796
Abstract :
Configurable software systems enable developers to configure at compile time a single variant of the system to tailor it towards specific environments and features. Although traditional static analysis tools can assist developers in software development and maintenance, they can only run on a concrete configuration of a configurable software system. Thus, it is necessary to derive many configurations so that the configuration-specific parts of the source code can be checked. To avoid this tedious and error-prone process, we propose an approach to automatically derive a set of configurations that cover as many combinations of configuration-specific blocks of code or source files as possible. We represent a C program with CPP directives (e.g., #ifdef) with a CPP control-flow graph (CPP-CFG) in which CPP expressions are condition nodes and #ifdef blocks are statement nodes. We then explore possible paths on CPP-CFG with dynamic symbolic execution and depth-first search algorithms, and correspondingly, producing possible combinations of concrete blocks of C code, on which an existing static analysis tool can run. Our preliminary evaluation on a benchmark of configuration-dependent bugs on Linux shows that our approach can detect more bugs than a state-of-the-art tool.
Keywords :
graph theory; program diagnostics; software maintenance; tree searching; C program; CPP control-flow graph; CPP directives; CPP-CFG; Linux; configurable software systems; configuration-dependent bugs; configuration-specific blocks; depth-first search algorithms; dynamic symbolic execution; software development; software maintenance; static analysis tools; static detection; Computer bugs; Concrete; Heuristic algorithms; Kernel; Linux; Software systems; configurable software; configuration-dependent bugs; dynamic symbolic execution;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Software Engineering (ICSE), 2015 IEEE/ACM 37th IEEE International Conference on
Conference_Location :
Florence
Type :
conf
DOI :
10.1109/ICSE.2015.252
Filename :
7203073
Link To Document :
بازگشت