|
|
CScout: The C Refactoring Browser
CScout is a source code analyzer and refactoring browser for
collections of C programs.
It can process workspaces of multiple projects (we define a project
as a collection of C source files that are linked together)
mapping the complexity introduced
by the C preprocessor back into the original C source code files.
CScout takes advantage of modern hardware advances (fast processors
and large memory capacities) to analyze C source code beyond the level
of detail and accuracy provided by current compilers, linkers, and
other source code analyzers.
The analysis CScout performs takes into account the identifier scopes
introduced by the C preprocessor and the C language proper scopes and
namespaces.
After the source code analysis CScout can
- perform accurate cross project identifier renames,
- process sophisticated queries on identifiers, files, and functions,
- locate unused or wrongly-scoped identifiers,
- identify header files that don't need to be included, and
- create call graphs spanning both C functions and function-like macros.
CScout has already been applied on projects ranging from
tens of thousands of lines,
like the Apache web server, to millions of
lines, like the Linux, the FreeBSD, and the Windows Research kernels.
With CScout you can make your hardware really work for its money.
For example, processing the 2.6.11 Linux kernel (4.2 million lines of code)
requires 4052MB of RAM and 4.7 hours of processing on a
dual-CPU 2.2GHz AMD Opteron computer.
After the processing CScout holds details on 1.1 million identifiers and 89 thousand
functions and function-like macros.
Read more ...,
walkthrough
(CScout documentation).
The source code of CScout is hosted on
GitHub.
CScout runs and has been tested under
GNU/Linux,
Microsoft Windows,
Apple OS X,
FreeBSD, and
Sun Solaris,
under several processor architectures.
|