cflow(1) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

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 ta‐
       bles.  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  op‐
       tions  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 ap‐
       peared (e.g., text). Leading underscores in C-style external names  are
       deleted.  Once a definition of a name has been printed, subsequent ref‐
       erences 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  ex‐
       pansion 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  in‐
           clude only functions in the flowgraph.


       -i_

           Includes names that begin with an underscore. The default is to ex‐
           clude  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)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3