trusty (1) cflow.1posix.gz

Provided by: manpages-posix_2.16-1_all bug

NAME

       cflow - generate a C-language flowgraph (DEVELOPMENT)

SYNOPSIS

       cflow [-r][-d num][-D name[=def]] ... [-i incl][-I dir] ...
              [-U dir] ... file ...

DESCRIPTION

       The  cflow  utility  shall  analyze  a  collection of object files or assembler, C-language, lex, or yacc
       source files, and attempt to build a graph, written to standard output, charting the external references.

OPTIONS

       The cflow 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 -D, -I, and -U options (which are identical to
       their interpretation by c99) is significant.

       The following options shall be supported:

       -d  num
              Indicate the depth at which the flowgraph is cut  off.  The  application  shall  ensure  that  the
              argument  num 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.

       -i  incl
              Increase the number of included  symbols.  The  incl  option-argument  is  one  of  the  following
              characters:

       x
              Include  external  and  static data symbols. The default shall be to include only functions in the
              flowgraph.

       _
              (Underscore) Include names that begin with an underscore. The default shall be  to  exclude  these
              functions (and data if -i x is used).

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

OPERANDS

       The following operand is supported:

       file   The pathname of a file for which a graph is to be generated. Filenames suffixed by .l shall  shall
              be taken to be lex input, .y as yacc input, .c as c99 input, and .i as the output of c99 -E.  Such
              files shall be processed as appropriate, determined by their suffix.

       Files suffixed by .s (conventionally assembler source) may have more limited information  extracted  from
       them.

STDIN

       Not used.

INPUT FILES

       The input files shall be object files or assembler, C-language, lex, or yacc source files.

ENVIRONMENT VARIABLES

       The following environment variables shall affect the execution of cflow:

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

       LC_ALL If set to a non-empty string value, override the values  of  all  the  other  internationalization
              variables.

       LC_COLLATE

              Determine the locale for the ordering of the output when the -r option is used.

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

       LC_MESSAGES
              Determine the locale that should be used to affect the format and contents of diagnostic  messages
              written to standard error.

       NLSPATH
              Determine the location of message catalogs for the processing of LC_MESSAGES .

ASYNCHRONOUS EVENTS

       Default.

STDOUT

       The flowgraph written to standard output shall be formatted as follows:

              "%d %s:%s\n", <reference number>, <global>, <definition>

       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 -i inclusion option.  For  information  extracted  from  C-language  source,  the
       definition  consists  of  an  abstract  type  declaration  (for  example, 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 filename and location counter under which the symbol appeared
       (for example, text).

       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 "<>" shall
       be written.

STDERR

       The standard error shall be used only for diagnostic messages.

OUTPUT FILES

       None.

EXTENDED DESCRIPTION

       None.

EXIT STATUS

       The following exit values shall be returned:

        0     Successful completion.

       >0     An error occurred.

CONSEQUENCES OF ERRORS

       Default.

       The following sections are informative.

APPLICATION USAGE

       Files produced by lex and yacc cause the reordering of line number declarations,  and  this  can  confuse
       cflow.  To obtain proper results, the input of yacc or lex must be directed to cflow.

EXAMPLES

       Given the following in file.c:

              int i;
              int f();
              int g();
              int h();
              int
              main()
              {
                  f();
                  g();
                  f();
              }
              int
              f()
              {
                  i = h();
              }

       The command:

              cflow -i x file.c

       produces the output:

              1 main: int(), <file.c 6>
              2    f: int(), <file.c 13>
              3        h: <>
              4        i: int, <file.c 1>
              5    g: <>

RATIONALE

       None.

FUTURE DIRECTIONS

       None.

SEE ALSO

       c99 , lex , yacc

       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 .