0 to try and find bugs which depend on them being initalized to 0.
Also turn off the other transformations by default (use --dokerneltrace
or --donullint)
Go get em Chad.
log() to certain functions in the kernel to help debugging.
An example use when building a kernel would be:
$ make CC='/usr/local/bin/cilly --trace-regexp=^cache_ --trace-level=0'
to instrument all functions starting with cache_* to notify syslog at
emergency log level. The output also includes the contents of any
char/int/long arguments (pointers and structs not followed yet, too
verbose).
A full kernel build doesnt quite work with CIL yet so use selectively.
--
CIL (C Intermediate Language) is a high-level representation along
with a set of tools that permit easy analysis and source-to-source
transformation of C programs.
CIL is both lower-level than abstract-syntax trees, by clarifying
ambiguous constructs and removing redundant ones, and also higher-level
than typical intermediate languages designed for compilation, by
maintaining types and a close relationship with the source program.
The main advantage of CIL is that it compiles all valid C programs
into a few core constructs with a very clean semantics. Also CIL
has a syntax-directed type system that makes it easy to analyze and
manipulate C programs. Furthermore, the CIL front-end is able to
process not only ANSI-C programs but also those using Microsoft C
or GNU C extensions.