User's Manual
Example 3 Generating code complexity metrics
To store the code complexity metrics in the PDB with Indirect Call Targets, use the following
command.
$cadvise +metrics=ict -pdb test.pdb aCC -c example.c
To get the metrics in the my.metrics file, use the following command.
$cadvise +metrics :out=my.metrics aCC -c example.c
To store the metrics in the my.metrics file without Indirect Call Targets, use the following command.
$cadvise +metrics :out=pdb -pdb test.pdb aCC -c example.c
The program complexity metrics are stored in a specified output location. The output location can
either be specified as the pdb (out=pdb) or a file <filename>(out=<filename>). Inserting a
+ before the <filename> appends the metrics to the file <filename>. If the output location is
not specified, then these metrics are written either to a PDB, if a PDB is present, or to the file
<objfile>.metrics.
Cadvise emits the following metrics for determining program complexity:
• For a source file
Number of header files included◦
◦ Total number of lines in the source file
◦ Number of comment lines
◦ Number of blank lines
◦ Number of lines of code
◦ Number of mixed lines (lines have both code and comments)
◦ Number of global variables
◦ Number of static variables
◦ Total number of functions defined
◦ Number of externally visible functions defined
◦ Number of global Thread Local Storage (TLS) Variables
◦ Number of static Thread Local Storage (TLS) Variables
◦ Number of global mutexes
◦ Number of static mutexes
◦ Program complexity metrics for each of the functions
• For a function
Function Signature◦
◦ Total number of lines
◦ Number of comment lines
◦ Number of blank lines
◦ Number of lines of code
◦ Number of mixed lines
◦ Number of macros used
◦ Number of local variables defined
◦ Number of static variables defined
14 Using Cadvise