cflow man page on Solaris

Man page or keyword search:  
man Server   20652 pages
apropos Keyword Search (all sections)
Output format
Solaris logo
[printable version]

cflow(1)							      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 defini‐
       tion 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     Reverse 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    Include  external	 and  static  data  symbols. The default is to
	      include only functions in the flowgraph.

       -i_    Include names that begin with an underscore. The default	is  to
	      exclude these functions (and data if -ix is used).

       -dnum  The  num	decimal integer indicates the depth at which the flow‐
	      graph is cut  off.   By  default	this  number  is  very	large.
	      Attempts	to  set the cutoff depth to a nonpositive 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
       the yacc or lex input.

				  March 1998				    0a
[top]

List of man pages available for Solaris

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net