本文共 1668 字,大约阅读时间需要 5 分钟。
转自:
1. 安装 sudo apt-get install cflow2.使用 cflow [options...] [file]...例:cflow main.c生成main.c文件例的函数调用关系cflow -x main.c生成交叉引用表,查看函数调用的位置和文件cflow -o call_tree.txt main.c生成调用关系并输出到call_tree.txt文件cflow -d 5 -o call_tree.txt main.c指定输出的最大调用深度位5其他选项:用 cflow --help查看通用选项:-d, --depth=NUMBER 设置流程图的绘制深度-f, --format=NAME使用指定的输出格式名。有效名称是‘gnu’(默认)和‘posix’-i, --include=CLASSES 包含指定的符号类(见下)。在 CLASSES之前放上 ^ 或 - 将它们从输出中省去-o, --output=FILE 设置输出文件名(默认为-,即标准输出)-r, --reverse * 打印反向调用树-x, --xref 仅生成交叉引用列表--include 参数的符号类_ 以下划线开始的符号名s 静态符号t typedefs(仅针对交叉引用)x 所有的数据符号(外部的和静态的)句法分析控制:-a, --ansi * 仅接受 ANSI C 标准的源码-D, --define=NAME[=DEFN] 将 NAME 预定义为一个宏-I, --include-dir=DIR 将 DIR目录添加至可被头文件搜索到的目录列表-m, --main=NAME 假定主函数是个叫 NAME 的函数-p, --pushdown=NUMBER 设置初始标识栈大小为 NUMBER--preprocess[=COMMAND], --cpp[=COMMAND]* 执行指定的预处理命令-s, --symbol=SYMBOL:[=]TYPE Register SYMBOL with given TYPE, or define analias (if := is used). Valid types are: keyword(or kw), modifier, qualifier, identifier, type,wrapper. Any unambiguous abbreviation of the aboveis also accepted-S, --use-indentation * 依赖缩进风格-U, --undefine=NAME 取消前面所有的 NAME 预定义输出控制:-b, --brief * 简洁输出--emacs * 为与 GNU Emacs联合使用而显示额外的格式输出-l, --print-level * 打印调用关系树的嵌套结构--level-indent=ELEMENT 控制图显示-n, --number * 打印行号--omit-arguments * 不在函数声明部分打印参数列表--omit-symbol-names * 不在声明字符串中打印符号名-T, --tree * 绘制 ASCII 形式的树输出信息选项:--debug[=NUMBER] 设定调试级别-v, --verbose * 详细的错误诊断报告-?, --help 显示此帮助列表--usage 显示一份简洁的用法信息-V, --version 打印程序版本选项完整形式所必须用的或是可选的参数,在使用选项缩写形式时也是必须的或是可选的。*每个带有星号标记的选项是相反操作,就像前面带有‘no-’的长选项名一样。例如,--no-cpp就是取消 --cpp 选项用的。其他工具:ctags:为所有函数创建索引cxref:生成交叉引用表
本文转自张昺华-sky博客园博客,原文链接:http://www.cnblogs.com/sky-heaven/p/6863108.html,如需转载请自行联系原作者