The
cxref(CP)
command analyzes a collection of C files
and builds a cross-reference table.
cxref
uses a special version of
cc(CP)
to include
#define'd
information in its symbol table.
It generates a list of all symbols (auto, static,
and global) in each individual file, or, with the
-c
option, in combination.
The table includes four fields: NAME, FILE,
FUNCTION,
and LINE.
The line numbers appearing in the LINE field
also show reference marks as appropriate.
The reference marks include:
assignment =
declaration -
definition *
If no reference marks appear, you can assume the reference
to be a general reference.
cxref
processes supplementary code set characters
according to the locale specified in the LC_CTYPE
environment variable
(see LANG on
environ(M)).
The -D, -I, and -U
options are interpreted as by
cc.
In addition,
cxref
interprets the following options:
-c
Combine the source files into a single report.
Without the -c option,
cxref
generates a separate report
for each file on the command line.
-d
Disable printing declarations, making the report easier to read.
-l
Do not print local variables; print only global and file scope statistics.
-ooutfile
Direct output to outfile.
-s
Operate silently; does not print input file names.
-t
Format listing for 80-column width.
-wnum
Width option that formats output no wider than num (decimal) columns.
This option will default to 80 if num is not specified or is
less than 51.
-C
Run only the first pass of
cxref,
creating a .cx
file that can later be passed to
cxref.
This is similar to the -c option of
cc
or
lint(CP).
-F
Print the full path of the referenced file names.
-Lcols
Modify the number of table columns in the LINE field.
If you do not specify a number,
cxref
defaults to five columns.
-V
Print version information on the standard error.
-Wname, file, function, line
Change the default width of at least one field.
The default widths are:
Field
Columns
NAME
15
FILE
13
FUNCTION
15
LINE
20 (4 per table column)
Exit values
Upon successful completion,
the exit status of cflow is 0,
otherwise the exit status is non-zero.
Diagnostics
Error messages are unusually cryptic,
but usually mean you cannot compile the files.
Examples
Suppose the C source file, a.c, contains the following lines: