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
       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)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3