'\" t .\" Title: cflow .\" Author: Jakub Wilk .\" Generator: DocBook XSL Stylesheets v1.79.1 .\" Date: 08/16/2019 .\" Manual: cflow manual .\" Source: cflow 1.2 .\" Language: English .\" .TH "CFLOW" "1" "08/16/2019" "cflow 1\&.2" "cflow manual" .\" ----------------------------------------------------------------- .\" * Define some portability stuff .\" ----------------------------------------------------------------- .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .\" http://bugs.debian.org/507673 .\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html .\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ .ie \n(.g .ds Aq \(aq .el .ds Aq ' .\" ----------------------------------------------------------------- .\" * set default formatting .\" ----------------------------------------------------------------- .\" disable hyphenation .nh .\" disable justification (adjust text to left margin only) .ad l .\" ----------------------------------------------------------------- .\" * MAIN CONTENT STARTS HERE * .\" ----------------------------------------------------------------- .SH "NAME" cflow \- analyze control flow in C source files .SH "SYNOPSIS" .HP \w'\fBcflow\fR\ 'u \fBcflow\fR [\fIoption\fR...] \fIfile\fR... .HP \w'\fBcflow\fR\ 'u \fBcflow\fR {\fB\-\-help\fR | \fB\-\-usage\fR | \fB\-\-version\fR | \fB\-V\fR} .SH "DESCRIPTION" .PP This manual page documents briefly the \fBcflow\fR command\&. .PP This manual page was written for the Debian distribution because the original program does not have a manual page\&. Instead, it has documentation in the GNU \fBinfo\fR(1) format\&. .PP GNU cflow analyzes a collection of C source files and prints a graph, charting control flow within the program\&. .PP GNU cflow is able to produce both direct and inverted flowgraphs for C sources\&. Optionally a cross\-reference listing can be generated\&. Two output formats are implemented: POSIX and GNU (extended)\&. .PP Input files can optionally be preprocessed before analyzing\&. .SH "OPTIONS" .PP A summary of options is included below\&. For a complete description, see the \fBinfo\fR(1) files\&. .PP The program follows the usual GNU command line syntax, with long options starting with two dashes (\-)\&. Mandatory or optional arguments to long options are also mandatory or optional for any corresponding short options\&. .PP The effect of each option marked with an asterisk is reversed if the option\*(Aqs long name is prefixed with \(oqno\-\(cq\&. For example, \(oq\-\-no\-cpp\(cq cancels \(oq\-\-cpp\(cq\&. .SS "General options" .PP \fB\-d\fR, \fB\-\-depth=\fR\fB\fInumber\fR\fR .RS 4 Set the depth at which the flowgraph is cut off\&. .RE .PP \fB\-f\fR, \fB\-\-format=\fR\fB\fIname\fR\fR .RS 4 Use given output format \fIname\fR\&. Valid names are \(oqgnu\(cq (default) and \(oqposix\(cq\&. .RE .PP \fB\-i\fR, \fB\-\-include=\fR\fB\fIclasses\fR\fR .RS 4 Include specified classes of symbols (see below)\&. Prepend \fIclasses\fR with ^ or \- to exclude them from the output\&. .sp Symbols classes: .PP _ .RS 4 symbols whose names begin with an underscore .RE .PP s .RS 4 static symbols .RE .PP t .RS 4 typedefs (for cross\-references only) .RE .PP x .RS 4 all data symbols, both external and static .RE .sp .RE .PP \fB\-o\fR, \fB\-\-output=\fR\fB\fIfile\fR\fR .RS 4 Set output file name\&. Default is \-, meaning standard output\&. .RE .PP \fB\-r\fR, \fB\-\-reverse\fR .RS 4 * Print reverse call graph\&. .RE .PP \fB\-x\fR, \fB\-\-xref\fR .RS 4 Produce cross\-reference listing only\&. .RE .SS "Parser control" .PP \fB\-a\fR, \fB\-\-ansi\fR .RS 4 * Accept only sources in ANSI C\&. .RE .PP \fB\-D\fR, \fB\-\-define=\fR\fB\fIname[=defn]\fR\fR .RS 4 Predefine \fIname\fR as a macro\&. .RE .PP \fB\-I\fR, \fB\-\-include\-dir=\fR\fB\fIdir\fR\fR .RS 4 Add the directory \fIdir\fR to the list of directories to be searched for header files\&. .RE .PP \fB\-m\fR, \fB\-\-main=\fR\fB\fIname\fR\fR .RS 4 Assume main function to be called \fIname\fR\&. .RE .PP \fB\-p\fR, \fB\-\-pushdown=\fR\fB\fInumber\fR\fR .RS 4 Set initial token stack size to \fInumber\fR\&. .RE .PP \fB\-\-preprocess\fR\fB\fI[=command]\fR\fR, \fB\-\-cpp\fR\fB\fI[=command]\fR\fR .RS 4 * Run the specified preprocessor command\&. .RE .PP \fB\-s\fR, \fB\-\-symbol=\fR\fB\fIsymbol\fR\fR\fB:\fR\fB\fItype\fR\fR .RS 4 Register \fIsymbol\fR with given \fItype\fR\&. Valid types are: \(oqkeyword\(cq (or \(oqkw\(cq), \(oqmodifier\(cq, \(oqidentifier\(cq, \(oqtype\(cq, \(oqwrapper\(cq\&. Any unambiguous abbreviation of the above is also accepted\&. .RE .PP \fB\-S\fR, \fB\-\-use\-indentation\fR .RS 4 * Use source file indentation as a hint\&. .RE .PP \fB\-U\fR, \fB\-\-undefine=\fR\fB\fIname\fR\fR .RS 4 Cancel any previous definition of \fIname\fR\&. .RE .SS "Output control" .PP \fB\-b\fR, \fB\-\-brief\fR .RS 4 * Use brief output\&. .RE .PP \fB\-\-emacs\fR .RS 4 * Additionally format output for use with GNU Emacs\&. .RE .PP \fB\-l\fR, \fB\-\-print\-level\fR .RS 4 * Print nesting level along with the call graph\&. .RE .PP \fB\-\-level\-indent=\fR\fB\fIstring\fR\fR .RS 4 Use \fIstring\fR when indenting to each new level\&. .RE .PP \fB\-n\fR, \fB\-\-number\fR .RS 4 * Print line numbers\&. .RE .PP \fB\-\-omit\-arguments\fR .RS 4 * Do not print argument lists in function declarations\&. .RE .PP \fB\-\-omit\-symbol\-names\fR .RS 4 * Do not print symbol names in declaration strings\&. .RE .PP \fB\-T\fR, \fB\-\-tree\fR .RS 4 * Draw ASCII art tree\&. .RE .SS "Informational options" .PP \fB\-\-debug\fR\fB\fI[=number]\fR\fR .RS 4 Set debugging level\&. .RE .PP \fB\-v\fR, \fB\-\-verbose\fR .RS 4 * Verbosely list any any errors encountered in the input files\&. .RE .PP \fB\-?\fR, \fB\-\-help\fR .RS 4 Display help and exit\&. .RE .PP \fB\-\-usage\fR .RS 4 Display short usage message and exit\&. .RE .PP \fB\-V\fR, \fB\-\-version\fR .RS 4 Display version information and exit\&. .RE .SH "AUTHOR" .PP \fBJakub Wilk\fR <\&jwilk@debian\&.org\&> .RS 4 Wrote this manpage for the Debian system\&. .RE .SH "COPYRIGHT" .br Copyright \(co 1997, 2005, 2007 Sergey Poznyakoff .br Copyright \(co 2009 Jakub Wilk .br .PP This manual page was written for the Debian system (and may be used by others)\&. .PP Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License Version 3, as published by the Free Software Foundation\&. .PP On Debian systems, the complete text of the GNU General Public License Version 3 can be found in /usr/share/common\-licenses/GPL\-3\&. .sp