Features in red are Cleanscape
Exclusive |
|
|
Feature |
Description |
LINT ANALYSIS OPTIONS |
|
Warning Level |
Control the depth of
analysis to be performed, including fatal/severe, warnings, informational and/or elective messages. |
Author/Industry Checks |
Enable explicit Scott
Meyers, MISRA C/C++, or Dan Saks checks. |
Target System |
Select from over 100
compilers, including Microsoft, gnu, Borland, or numerous embedded compilers.
External
tools extract information about other compilers, then add the new compiler to
the dropdown. |
ANSI Compliance |
Detect non-ANSI keywords
(portability analysis). |
Bypass Headers |
Scan specified header files
only once, saving analysis time. |
REPORT OPTIONS |
|
Inheritance |
Generate class hierarchy
report. |
Include Tree |
Generate include tree, with
options to suppress system headers or identify identical header filenames in
different directories. |
Stack Usage |
Show storage and stack
requirements on a function-by-function basis. |
External Editor |
Select the external code
editor to be invoked when clicking a hyperlink. External program 'seteditor' can add your
own editor to the dropdown list. |
Statistics |
File counts, symbol
types/counts, and message counts/summary. |
MISCELLANEOUS OPTIONS |
|
Include Directories |
Add include file
directories. |
System (Library)
Directives |
Specify which include
files/directories are system (rather than local). |
Define/Undefine Symbols |
Define or undefine a
preprocessor symbol. |
Enable/Disable Lint
Messages |
Enable or disable specific
Gimpel PC-lint analyses based on the message number. |
Enable/Disable
Verbosity/Flag Options |
Enable or disable specific
Gimpel PC-lint verbosity and flag options. |
Enable/Disable
Semantics/Threading |
Enter controls for function
mimicry, user-defined semantics, and multithreading with mutexes,
lock/unlock, and thread safety. |
Help Menu |
Each control option is
described in the Contents and Index section; also supplies equivalent command
line parameters. A GUI quick start
guide and the full PC-lint user manual are also available from the Help menu. |
INNOVATIVE CODE ANALYSIS |
|
Security and anti-hacking
analyses |
Analyses to detect coding
practices that leave code vulnerable, such as buffer overrun. |
Powerful yet intuitive
graphical interface |
Fast and interactive
environment overlays powerful Gimpel PC-lint command line engine and also
controls four other innovative analyses, with hyperlinks using specified
external programming editor. |
Multithread Analysis |
Abnormalities in locking
and unlocking are identified. Reports
are made of unprotected access to static variables shared by multiple
threads. Functions compatible with
only a subset of threads can be identified. |
Strong Type Checking |
"Magic comments"
implement type-checking that Pascal has and that C and C++ lack A type hierarchy scheme provides
flexibility. 12 modes of checking with
numerous submodes are available (e.g., check assignments, extractions, joins,
indexing into arrays, type hierarchies). |
Value Tracking |
Type of dataflow analysis
where information is retained about automatic variables, data members of the this class, and static
variables to detect out-of-bounds subscripts, division by 0, inappropriate
use of NULL pointers, creation of illegal pointers, and redundant Boolean
tests. |
Checks on Weak Definials |
Macro definitions,
TYPEDEFs, declarations, STRUCT/UNION/ENUM definitions and members, and
templates are checked for redundancy and/or whether they are unused. Information is provided as to whether they
may be safely removed or tagged STATIC. |
Possibly Uninitialized |
Type of dataflow analysis
to determine whether variables are initialized for all branches of
conditional constructs and forward GOTOs.
Data members of C++ classes are also inspected. |
Function Mimicry |
Type of dataflow analysis
to allow user-created functions to match the argument lists of certain
standard functions (e.g., fopen or printf). |
User-defined Function
Semantics Checking |
Type of dataflow analysis
using "magic comments" to create user-defined semantics for
thorough checking of user-created functions. |
|
|