Map the Software DNA (C/C++)
Prevent attains a clear understanding of every operation your build system performs by incorporating a monitoring layer that sits between your build system and operating system to track every touch point between the two. This monitoring layer identifies all invoked executables as well as all files that are opened, written and read. When Prevent identifies a call to your compiler from the build system, it performs a number of steps to understand the actions of that call and its implications on the compiled code. Prevent translates all command lines to understand exactly how the native preprocessor and compiler proper will generate executables. An insertion layer in the build system records all unique compilations of every single file, and Prevent provides a utility that allows you to logically combine those entities into their representative coherent libraries and executables. Prevent compiles many flavors of C and C++ code, including all major language extensions implemented by individual compilers and various dialects of C and C++. Using a pre-preprocessor, Prevent can also manipulate nonstandard constructs into semantically equivalent, standard constructs that the front-end parser can interpret and understand. The Software DNA Map contains enough build system and source code information to construct a running program from the Software DNA Map itself. It captures all of the data that the compiler uses to generate executable code, and is also the only place where all relevant source code data resides. While you can create an executable from the information stored in the Software DNA Map, the converse is not true. You cannot create the Software DNA Map from the information stored in any executable because build systems, compilers, and linkers all lose information as they translate source files into executables. Only Coverity’s understanding of your build system allows you to create a true Software DNA Map. There is no other way.
last updated: 13.01.2009 © 2008-2009 Coverity Inc., San Francisco |


