DocumentCode :
2617679
Title :
C/C++ conditional compilation analysis using symbolic execution
Author :
Hu, Ying ; Merlo, Ettore ; Dagenais, Mario ; Lagüe, Bruno
Author_Institution :
Dept. of Electr. & Comput. Eng., Ecole Polytech., Montreal, Que., Canada
fYear :
2000
fDate :
2000
Firstpage :
196
Lastpage :
206
Abstract :
Conditional compilation is one of the most powerful parts of a C/C++ environment available for building software for different platforms with different feature sets. Although conditional compilation is powerful, it can be difficult to understand and is error-prone. In large software systems, file inclusion, conditional compilation and macro substitution are closely related and are often largely interleaved. Without adequate tools, understanding complex header files is a tedious task. This practice may even be complicated as the hierarchies of header files grow with projects. This paper presents our experiences of studying conditional compilation based on the symbolic execution of preprocessing directives. Our two concrete goals are: for any given preprocessor directive or C/C++ source code line, finding the simplest sufficient condition to reach/compile it, and finding the full condition to reach/compile that code line. Two different strategies were used to achieve these two goals. A series of experiments conducted on the Linux kernel are presented
Keywords :
C language; C++ language; Unix; operating system kernels; program compilers; program diagnostics; reachability analysis; symbol manipulation; C language environment; C++ environment; Linux kernel; conditional compilation analysis; feature sets; file inclusion; header file hierarchies; large software systems; macro substitution; preprocessing directives; reachability; source code lines; sufficient condition; symbolic execution; C language;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Software Maintenance, 2000. Proceedings. International Conference on
Conference_Location :
San Jose, CA
ISSN :
1063-6773
Print_ISBN :
0-7695-0753-0
Type :
conf
DOI :
10.1109/ICSM.2000.883045
Filename :
883045
Link To Document :
بازگشت