mirror of https://github.com/mkerrisk/man-pages
251 lines
6.6 KiB
Groff
251 lines
6.6 KiB
Groff
|
.\" Copyright (c) 2001-2003 The Open Group, All Rights Reserved
|
||
|
.TH "CFLOW" P 2003 "IEEE/The Open Group" "POSIX Programmer's Manual"
|
||
|
.\" cflow
|
||
|
.SH NAME
|
||
|
cflow \- generate a C-language flowgraph (\fBDEVELOPMENT\fP)
|
||
|
.SH SYNOPSIS
|
||
|
.LP
|
||
|
\fBcflow\fP \fB[\fP\fB-r\fP\fB][\fP\fB-d\fP \fInum\fP\fB][\fP\fB-D\fP
|
||
|
\fIname\fP\fB[\fP\fB=\fP\fIdef\fP\fB]]\fP \fB...\fP \fB[\fP\fB-i\fP
|
||
|
\fIincl\fP\fB][\fP\fB-I\fP
|
||
|
\fIdir\fP\fB]\fP \fB...
|
||
|
.br
|
||
|
\ \ \ \ \ \ \fP \fB[\fP\fB-U\fP \fIdir\fP\fB]\fP \fB...\fP \fIfile\fP
|
||
|
\fB\&... \fP
|
||
|
.SH DESCRIPTION
|
||
|
.LP
|
||
|
The \fIcflow\fP utility shall analyze a collection of object files
|
||
|
or assembler, C-language, \fIlex\fP, or \fIyacc\fP source files, and
|
||
|
attempt to build a
|
||
|
graph, written to standard output, charting the external references.
|
||
|
.SH OPTIONS
|
||
|
.LP
|
||
|
The \fIcflow\fP utility shall conform to the Base Definitions volume
|
||
|
of IEEE\ Std\ 1003.1-2001, Section 12.2, Utility Syntax Guidelines,
|
||
|
except that the order of the \fB-D\fP,
|
||
|
\fB-I\fP, and \fB-U\fP options (which are identical to their interpretation
|
||
|
by \fIc99\fP) is
|
||
|
significant.
|
||
|
.LP
|
||
|
The following options shall be supported:
|
||
|
.TP 7
|
||
|
\fB-d\ \fP \fInum\fP
|
||
|
Indicate the depth at which the flowgraph is cut off. The application
|
||
|
shall ensure that the argument \fInum\fP is a decimal
|
||
|
integer. By default this is a very large number (typically greater
|
||
|
than 32000). Attempts to set the cut-off depth to a non-positive
|
||
|
integer shall be ignored.
|
||
|
.TP 7
|
||
|
\fB-i\ \fP \fIincl\fP
|
||
|
Increase the number of included symbols. The \fIincl\fP option-argument
|
||
|
is one of the following characters:
|
||
|
.TP 7
|
||
|
\fIx\fP
|
||
|
.RS
|
||
|
Include external and static data symbols. The default shall be to
|
||
|
include only functions in the flowgraph.
|
||
|
.RE
|
||
|
.TP 7
|
||
|
\fB_\fP
|
||
|
.RS
|
||
|
(Underscore) Include names that begin with an underscore. The default
|
||
|
shall be to exclude these functions (and data if
|
||
|
\fB-i\ x\fP is used).
|
||
|
.RE
|
||
|
.sp
|
||
|
.TP 7
|
||
|
\fB-r\fP
|
||
|
Reverse the caller:callee relationship, producing an inverted listing
|
||
|
showing the callers of each function. The listing shall
|
||
|
also be sorted in lexicographical order by callee.
|
||
|
.sp
|
||
|
.SH OPERANDS
|
||
|
.LP
|
||
|
The following operand is supported:
|
||
|
.TP 7
|
||
|
\fIfile\fP
|
||
|
The pathname of a file for which a graph is to be generated. Filenames
|
||
|
suffixed by \fB.l\fP shall shall be taken to be \fIlex\fP input, \fB.y\fP
|
||
|
as \fIyacc\fP input, \fB.c\fP
|
||
|
as \fIc99\fP input, and \fB.i\fP as the output of \fIc99\fP \fB-E\fP.
|
||
|
Such files shall be processed as appropriate, determined by their
|
||
|
suffix.
|
||
|
.LP
|
||
|
Files suffixed by \fB.s\fP (conventionally assembler source) may have
|
||
|
more limited information extracted from them.
|
||
|
.sp
|
||
|
.SH STDIN
|
||
|
.LP
|
||
|
Not used.
|
||
|
.SH INPUT FILES
|
||
|
.LP
|
||
|
The input files shall be object files or assembler, C-language, \fIlex\fP,
|
||
|
or \fIyacc\fP source files.
|
||
|
.SH ENVIRONMENT VARIABLES
|
||
|
.LP
|
||
|
The following environment variables shall affect the execution of
|
||
|
\fIcflow\fP:
|
||
|
.TP 7
|
||
|
\fILANG\fP
|
||
|
Provide a default value for the internationalization variables that
|
||
|
are unset or null. (See the Base Definitions volume of
|
||
|
IEEE\ Std\ 1003.1-2001, Section 8.2, Internationalization Variables
|
||
|
for
|
||
|
the precedence of internationalization variables used to determine
|
||
|
the values of locale categories.)
|
||
|
.TP 7
|
||
|
\fILC_ALL\fP
|
||
|
If set to a non-empty string value, override the values of all the
|
||
|
other internationalization variables.
|
||
|
.TP 7
|
||
|
\fILC_COLLATE\fP
|
||
|
.sp
|
||
|
Determine the locale for the ordering of the output when the \fB-r\fP
|
||
|
option is used.
|
||
|
.TP 7
|
||
|
\fILC_CTYPE\fP
|
||
|
Determine the locale for the interpretation of sequences of bytes
|
||
|
of text data as characters (for example, single-byte as
|
||
|
opposed to multi-byte characters in arguments and input files).
|
||
|
.TP 7
|
||
|
\fILC_MESSAGES\fP
|
||
|
Determine the locale that should be used to affect the format and
|
||
|
contents of diagnostic messages written to standard
|
||
|
error.
|
||
|
.TP 7
|
||
|
\fINLSPATH\fP
|
||
|
Determine the location of message catalogs for the processing of \fILC_MESSAGES
|
||
|
\&.\fP
|
||
|
.sp
|
||
|
.SH ASYNCHRONOUS EVENTS
|
||
|
.LP
|
||
|
Default.
|
||
|
.SH STDOUT
|
||
|
.LP
|
||
|
The flowgraph written to standard output shall be formatted as follows:
|
||
|
.sp
|
||
|
.RS
|
||
|
.nf
|
||
|
|
||
|
\fB"%d %s:%s\\n", <\fP\fIreference number\fP\fB>, <\fP\fIglobal\fP\fB>, <\fP\fIdefinition\fP\fB>
|
||
|
\fP
|
||
|
.fi
|
||
|
.RE
|
||
|
.LP
|
||
|
Each line of output begins with a reference (that is, line) number,
|
||
|
followed by indentation of at least one column position per
|
||
|
level. This is followed by the name of the global, a colon, and its
|
||
|
definition. Normally globals are only functions not defined as
|
||
|
an external or beginning with an underscore; see the OPTIONS section
|
||
|
for the \fB-i\fP inclusion option. For information extracted
|
||
|
from C-language source, the definition consists of an abstract type
|
||
|
declaration (for example, \fBchar *\fP) and, delimited by
|
||
|
angle brackets, the name of the source file and the line number where
|
||
|
the definition was found. Definitions extracted from object
|
||
|
files indicate the filename and location counter under which the symbol
|
||
|
appeared (for example, \fItext\fP).
|
||
|
.LP
|
||
|
Once a definition of a name has been written, subsequent references
|
||
|
to that name contain only the reference number of the line
|
||
|
where the definition can be found. For undefined references, only
|
||
|
\fB"<>"\fP shall be written.
|
||
|
.SH STDERR
|
||
|
.LP
|
||
|
The standard error shall be used only for diagnostic messages.
|
||
|
.SH OUTPUT FILES
|
||
|
.LP
|
||
|
None.
|
||
|
.SH EXTENDED DESCRIPTION
|
||
|
.LP
|
||
|
None.
|
||
|
.SH EXIT STATUS
|
||
|
.LP
|
||
|
The following exit values shall be returned:
|
||
|
.TP 7
|
||
|
\ 0
|
||
|
Successful completion.
|
||
|
.TP 7
|
||
|
>0
|
||
|
An error occurred.
|
||
|
.sp
|
||
|
.SH CONSEQUENCES OF ERRORS
|
||
|
.LP
|
||
|
Default.
|
||
|
.LP
|
||
|
\fIThe following sections are informative.\fP
|
||
|
.SH APPLICATION USAGE
|
||
|
.LP
|
||
|
Files produced by \fIlex\fP and \fIyacc\fP cause the
|
||
|
reordering of line number declarations, and this can confuse \fIcflow\fP.
|
||
|
To obtain proper results, the input of \fIyacc\fP or \fIlex\fP must
|
||
|
be directed to \fIcflow\fP.
|
||
|
.SH EXAMPLES
|
||
|
.LP
|
||
|
Given the following in \fBfile.c\fP:
|
||
|
.sp
|
||
|
.RS
|
||
|
.nf
|
||
|
|
||
|
\fBint i;
|
||
|
int f();
|
||
|
int g();
|
||
|
int h();
|
||
|
int
|
||
|
main()
|
||
|
{
|
||
|
f();
|
||
|
g();
|
||
|
f();
|
||
|
}
|
||
|
int
|
||
|
f()
|
||
|
{
|
||
|
i = h();
|
||
|
}
|
||
|
\fP
|
||
|
.fi
|
||
|
.RE
|
||
|
.LP
|
||
|
The command:
|
||
|
.sp
|
||
|
.RS
|
||
|
.nf
|
||
|
|
||
|
\fBcflow -i x file.c
|
||
|
\fP
|
||
|
.fi
|
||
|
.RE
|
||
|
.LP
|
||
|
produces the output:
|
||
|
.sp
|
||
|
.RS
|
||
|
.nf
|
||
|
|
||
|
\fB1 main: int(), <file.c 6>
|
||
|
2 f: int(), <file.c 13>
|
||
|
3 h: <>
|
||
|
4 i: int, <file.c 1>
|
||
|
5 g: <>
|
||
|
\fP
|
||
|
.fi
|
||
|
.RE
|
||
|
.SH RATIONALE
|
||
|
.LP
|
||
|
None.
|
||
|
.SH FUTURE DIRECTIONS
|
||
|
.LP
|
||
|
None.
|
||
|
.SH SEE ALSO
|
||
|
.LP
|
||
|
\fIc99\fP , \fIlex\fP , \fIyacc\fP
|
||
|
.SH COPYRIGHT
|
||
|
Portions of this text are reprinted and reproduced in electronic form
|
||
|
from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology
|
||
|
-- Portable Operating System Interface (POSIX), The Open Group Base
|
||
|
Specifications Issue 6, Copyright (C) 2001-2003 by the Institute of
|
||
|
Electrical and Electronics Engineers, Inc and The Open Group. In the
|
||
|
event of any discrepancy between this version and the original IEEE and
|
||
|
The Open Group Standard, the original IEEE and The Open Group Standard
|
||
|
is the referee document. The original Standard can be obtained online at
|
||
|
http://www.opengroup.org/unix/online.html .
|