生成外部引用的 C 和 C++ 流程图。
cflow [ -d Number ] [ -I Directory ] [ -i _ ] [ -i p ] [ -i x ] [ -qOption ] [ -r ] [ -MA ] [ -U Name ] [ -NdNumber ] [ -NlNumber ] [ -NnNumber ] [ -NtNumber ] [ -D Name[=Definition ] ] File ...
cflow 命令分析 C、C++、yacc、lex、汇编程序和目标文件并将它们的外部引用图表写至标准输出。
注:cflow 命令对 C++ 语言文件的处理要求具有 IBM C Set++ 编译器/6000 软件包。
cflow 命令将具有 .y、.l 和 .c 后缀的文件发送至 yacc 命令、lex 命令和 cpp 命令用于处理。然后,lint 命令已修改的第一次传递会处理 yacc、lex 和 cpp 输出或任何 .i 文件。cflow 命令将具有 .C 后缀的文件发送至 C Set++ 编译器。
cflow 命令汇编具有 .s 后缀的文件,并从符号表抽取信息(如同它处理 .o 文件一样)。从该输出,cflow 命令会生成外部引用图并将它写至标准输出。
输出的每一行提供以下信息(按从左至右的顺序):
名称通常是一个未被定义为外部函数的函数,也不是以下划线字符开头的函数(请参阅 -i_ 和 -i 包含标志)。
对于从 C 和 C++ 源文件抽取的信息,其定义包括抽象的类型说明(例如,char *)、被尖括号括起的源文件名和可在其中查找到定义的行号。从目标文件抽取的定义包含文件名和出现符号的位置计数器,比如 .text 或 .data。cflow 命令在 C 样式的外部名称中删除开头的下划线字符。
一旦 cflow 命令显示了名称,稍后会引用仅包含可在其中查找到定义的 cflow 行号的名称。对于未定义的引用,cflow 仅显示 < >(尖括号)。
如果嵌套级别太深,而无法在可用空间中显示,通过管道将输出从 cflow 命令传递至 pr 命令,并使用 -e 标志压缩制表符扩展以使每个制表符停止位少于八个空格。
注:要确保 cflow 命令产生的行号与 lex 和 yacc 文件相匹配,就必须将 .l 或 .y 文件发送至 cflow 命令。
此外,cflow 命令能识别 cpp 命令(宏预处理器)的以下标志:
该命令返回以下退出值:
0 | 成功完成。 |
>0 | 发生一个错误。 |
cflow timeout.c kill.c error.c
cflow -d1 resam.c pptp.c ptpt.c rrr.c whn.c
cflow scan.l
cflow yaccfile.y
cflow -r resam.c pptp.c ptpt.c rrr.c whn.c
as 命令、cpp 命令、lex 命令、lint 命令、nm 命令、pr 命令、yacc 命令。