svcadm(8)을 검색하려면 섹션에서 8 을 선택하고, 맨 페이지 이름에 svcadm을 입력하고 검색을 누른다.
cflow(1)
cflow(1) User Commands cflow(1)
NAME
cflow - generate C flowgraph
SYNOPSIS
cflow [-r] [-ix] [-i_] [-dnum] files
DESCRIPTION
The cflow command analyzes a collection of C, yacc, lex, assembler and
object files, and builds a graph charting the external function refer‐
ences. Files suffixed with .y, .l, and .c are processed by yacc, lex,
and the C compiler as appropriate. The results of the preprocessed
files, and files suffixed with .i, are then run through the first pass
of lint. Files suffixed with .s are assembled. Assembled files and
files suffixed with .o have information extracted from their symbol
tables. The results are collected and turned into a graph of external
references that is written on the standard output.
Each line of output begins with a reference number, followed by a suit‐
able number of tabs indicating the level, then the name of the global
symbol followed by a colon and its definition. Normally only function
names that do not begin with an underscore are listed (see the -i
options below). For information extracted from C source, the definition
consists of an abstract type declaration (e.g., char *), 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 file name and location counter under which the symbol
appeared (e.g., text). Leading underscores in C-style external names
are deleted. Once a definition of a name has been printed, subsequent
references to that name contain only the reference number of the line
where the definition may be found. For undefined references, only <> is
printed.
As an example, suppose the following code is in file.c:
int i;
main()
{
f();
g();
f();
}
f()
{
i = h();
}
The command
cflow -ix file.c
produces the output
1 main: int(), <file.c 4>
2 f: int(), <file.c 11>
3 h: <>
4 i: int, <file.c 1>
5 g: <>
When the nesting level becomes too deep, the output of cflow can be
piped to the pr command, using the -e option, to compress the tab
expansion to something less than every eight spaces.
In addition to the -D, -I, and -U options, which are interpreted just
as they are by cc, the following options are interpreted by cflow:
-r
Reverses the "caller:callee'' relationship producing an inverted
listing showing the callers of each function. The listing is also
sorted in lexicographical order by callee.
-ix
Includes external and static data symbols. The default is to
include only functions in the flowgraph.
-i_
Includes names that begin with an underscore. The default is to
exclude these functions, and also exclude data if -ix option is
used.
-dnum
The num decimal integer indicates the depth at which the flowgraph
is cut off. By default, this number is very large. Attempts to set
the cutoff depth to a non-positive integer will be ignored.
SEE ALSO
as(1), cc(1)lex(1), lint(1), nm(1), pr(1), yacc(1)
DIAGNOSTICS
Complains about multiple definitions and only believes the first.
NOTES
Files produced by lex and yacc cause the reordering of line number dec‐
larations, which can confuse cflow. To get proper results, feed cflow
with yacc or lex input.
Studio 12.6 May 2017 cflow(1)