AIX命令参考大全,卷 1,a - c - cflow 命令

[ 页的底部 | 上一页 | 下一页 | 目录 | 索引 | 法律条款 ]

AIX命令参考大全,卷 1,a - c

cflow 命令

用途

生成外部引用的 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++、yacclex、汇编程序和目标文件并将它们的外部引用图表写至标准输出。

注:cflow 命令对 C++ 语言文件的处理要求具有 IBM C Set++ 编译器/6000 软件包。

cflow 命令将具有 .y.l .c 后缀的文件发送至 yacc 命令、lex 命令和 cpp 命令用于处理。然后,lint 命令已修改的第一次传递会处理 yacclexcpp 输出或任何 .i 文件。cflow 命令将具有 .C 后缀的文件发送至 C Set++ 编译器。

cflow 命令汇编具有 .s 后缀的文件,并从符号表抽取信息(如同它处理 .o 文件一样)。从该输出,cflow 命令会生成外部引用图并将它写至标准输出。

输出的每一行提供以下信息(按从左至右的顺序):

名称通常是一个未被定义为外部函数的函数,也不是以下划线字符开头的函数(请参阅 -i_-i 包含标志)。

对于从 C 和 C++ 源文件抽取的信息,其定义包括抽象的类型说明(例如,char *)、被尖括号括起的源文件名和可在其中查找到定义的行号。从目标文件抽取的定义包含文件名和出现符号的位置计数器,比如 .text.datacflow 命令在 C 样式的外部名称中删除开头的下划线字符。

一旦 cflow 命令显示了名称,稍后会引用仅包含可在其中查找到定义的 cflow 行号的名称。对于未定义的引用,cflow 仅显示 < >(尖括号)。

如果嵌套级别太深,而无法在可用空间中显示,通过管道将输出从 cflow 命令传递至 pr 命令,并使用 -e 标志压缩制表符扩展以使每个制表符停止位少于八个空格。

注:要确保 cflow 命令产生的行号与 lexyacc 文件相匹配,就必须将 .l.y 文件发送至 cflow 命令。

标志

-d Number 设置为一个十进制整数,即截断流程图的深度。缺省情况下,此为较大数。不要将截断深度设置为非正的整数。
-i _ 包括以下划线字符开头的名称。缺省值不包括这些函数(如果使用 -ix 标志,则不包括对应数据)。
-i p 禁用 ANSI 函数原型。缺省选项将使用可用的原型声明来填写未定义的函数信息。
-i x 包括外部和静态数据符号。缺省值仅包括函数。
-r 产生显示每个函数调用者的反向列表,按所调用的函数排序。
-MA 指定 ANSI 方式。cflow 命令希望 ANSI C 代码是此方式的。操作的缺省方式是扩展方式。
-NdNumber 将维度表大小更改为 Number 参数。Number 的缺省值是 2000。
-NlNumber 将类型节点数更改为 Number 参数。Number 的缺省值是 8000。
-NnNumber 将符号表大小更改为 Number 参数。Number 的缺省值是 1500。
-NtNumber 将树节点数更改为 Number 参数。Number 的缺省值是 1000。

此外,cflow 命令能识别 cpp 命令(宏预处理器)的以下标志:

-D Name[=Definition] 定义 Name 参数,如同由 #define 语句定义一样。缺省的 Definition 是 1。
-qOption 传递 -qOption 至预处理器。例如 -qmbcs 设置由当前语言环境指定的多字节方式,而 -qidirfirst 修改包含在 #include file_name 伪指令中的文件的搜索顺序。
-I Directory 将指定的 Directory 添加至 cflow 程序在其中搜索 #include 文件的目录列表。
-U Name 除去 Name 参数的任何初始定义,其中 Name 是由特定预处理器预定义的保留符号。

退出状态

该命令返回以下退出值:

0 成功完成。
>0 发生一个错误。

示例

  1. 要生成组成程序的那些 C 文件的缺省流程图,输入:

    cflow timeout.c kill.c error.c 
  2. 要产生具有函数嵌套单一级别的 cflow 图,输入:

    cflow -d1 resam.c pptp.c ptpt.c rrr.c whn.c
  3. 要生成 lex 程序的 cflow 图,输入:

    cflow scan.l
  4. 要生成 yacc 程序的 cflow 图,输入:

    cflow yaccfile.y
  5. 要生成显示在示例 2 中使用的 C 文件中每个函数调用者的倒排列表,输入:

    cflow -r resam.c pptp.c ptpt.c rrr.c whn.c

文件

/usr/ccs/bin/cflow cflow 命令的驱动程序
/usr/ccs/lib/cflow1 cflow 命令的可执行(文件)
/usr/ccs/lib/dag cflow 命令的可执行(文件)
/usr/ccs/lib/flip cflow 命令的可执行(文件)
/usr/ccs/lib/lpfx cflow 命令的可执行(文件)
/usr/ccs/lib/nmf cflow 命令的可执行(文件)
/var/tmp/cf.* cflow 命令创建的暂时文件。

相关信息

as 命令、cpp 命令、lex 命令、lint 命令、nm 命令、pr 命令、yacc 命令。

[ 页的顶部 | 上一页 | 下一页 | 目录 | 索引 | 法律条款 ]