Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

cflow(1) [ultrix man page]

cflow(1)						      General Commands Manual							  cflow(1)

Name
       cflow - generate C flow graph

Syntax
       cflow [-r] [-ix] [-i_] [-dnum] files

Description
       The  command  analyzes a collection of C, YACC, LEX, assembler, and object files and attempts to build a graph charting the external refer-
       ences.  Files suffixed in .y, .l, .c, and .i are YACC'd, LEX'd, and C-preprocessed (bypassed for .i files)  as  appropriate  and  then  run
       through	the  first pass of The -I, -D, and -U options of the C-preprocessor are also understood.  Files suffixed with .s are assembled and
       information is extracted from the symbol table.	The output of all this non-trivial processing is collected and	turned	into  a  graph	of
       external references which is displayed upon the standard output.

       Each  line  of  output begins with a reference, or line, number, followed by a suitable number of tabs indicating the level.  Following the
       reference number is the name of the global, a colon, and the global's definition.  (See the option for information on names that begin with
       an  underscore.)   For  information extracted from C source, the definition consists of an abstract type declaration (for example, char *),
       and, the name of the source file and the line number where the definition was found.  The name of the source file and the line  number  are
       delimited  by  angel  brackets.	Definitions extracted from object files indicate the file name and location counter under which the symbol
       appeared (for example, 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.

       The following is an example in file.c:
       int  i;

       main()
       {
	    f();
	    g();
	    f();
       }

       f()
       {
	    i = h();
       }
       The command
       cflow -ix file.c
       produces the following 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 -e option of can be used to compress the tab expansion to something less than every eight spa-
       ces.

Options
       -dnum		   The num decimal integer indicates the depth at which the flow graph is cut off.  By default this is a very  large  num-
			   ber.  Attempts to set the cutoff depth to a nonpositive integer will be met with contempt.

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

       -ix		   Includes external and static data symbols. The default is to include only functions in the flow graph.

       -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.

Restrictions
       Files produced by and cause the reordering of line number declarations which can confuse To get proper results, feed the or input.

Diagnostics
       Complains about bad options.  Complains about multiple definitions and only believes the first.	Other messages may come from  the  various
       programs used (for example, the C-preprocessor).

See Also
       as(1), cc(1), lex(1), lint(1), nm(1), pr(1), yacc(1)

																	  cflow(1)

Check Out this Related Man Page

GTAGS-PARSER(1) 					      General Commands Manual						   GTAGS-PARSER(1)

NAME
gtags-parser - print cross reference list for gtags. SYNOPSIS
gtags-parser [-bdenqrstvw] file ... DESCRIPTION
Gtags-parser print cross reference list for gtags(1) from the specified C, C++, yacc, java, PHP and Assembly source to standard output. Each line of output contains the object name, the line number which it appears, the file in which it is defined, and a line image separated by white-space. It's same with the output of ctags(1) with -x option. Depending upon the options provided to gtags-parser, objects will consist of object definitions, object references and other symbols. Files whose names end in '.c' or '.h' are assumed to be C source files. Files whose names end in '.c++' '.cc' '.cpp' '.cxx' '.hxx' '.hpp' '.C' '.H' are assumed to be C++ source files. Files whose names end in '.y' are assumed to be YACC source files. Files whose names end in '.java' are assumed to be Java source files. Files whose names end in '.php' '.php3' '.phtml' are assumed to be PHP source files. Files whose names end in '.s' or '.S' are assumed to be Assembly source files. Other files are searched for C style definitions. Yacc files each have a special tag. yyparse is the start of the second section of the yacc file. This command is the default parser of GLOBAL source code tag system. OPTIONS
The following options are available: -b, --begin-block Force level 1 block to begin when reach the left brace at the first column. (C only) -e, --end-block Force level 1 block to end when reach the right brace at the first column. (C only) -n, --no-tags Suppress output of tags. It is useful to use with -w option. -q, --quiet Quiet mode. -r, --reference Locate object references instead of object definitions. 'GTAGS' is needed at the current directory. (C, C++ and Java source only) By default, locate object definitions. -s, --symbol Collect symbols other than object definitions and references. By default, locate object definitions. -v, --verbose Verbose mode. -w, --warning Print warning message. --langmap=map Language mapping. Each comma-separated map consists of the language name, a colon, and a list of file extensions. Default mapping is 'c:.c.h,yacc:.y,asm:.s.S,java:.java,cpp:.c++.cc.cpp.cxx.hxx.hpp.C.H,php:.php.php3.phtml'. The -r and -s options override each other; the last one specified determines the method used. ENVIRONMENT
The following environment variables affect the execution of gtags-parser: GTAGSFORCECPP If this variable is set, each file whose suffix is 'h' is treated as a C++ source file. DIAGNOSTICS
Gtags-parser exits with a non 0 value if an error occurred, 0 otherwise. Duplicate objects are not considered errors. SEE ALSO
global(1), gtags(1), htags(1). GNU GLOBAL source code tag system (http://www.gnu.org/software/global/). BUG
Gtags-parser relies on the input being well formed, and any syntactical errors will completely confuse it. AUTHOR
Tama Communications Corporation. HISTORY
The gtags-parser(gctags) command appeared in FreeBSD 2.2.2. GNU Project March 2008 GTAGS-PARSER(1)
Man Page