zoukankan      html  css  js  c++  java
  • 用cflow工具生成代码函数调用关系【转】

    转自:http://www.cnblogs.com/feng-zi/p/5469652.html

    1. 安装
    
      sudo apt-get install cflow
    
    2.使用
    
      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 an
    alias (if := is used). Valid types are: keyword
    (or kw), modifier, qualifier, identifier, type,
    wrapper. Any unambiguous abbreviation of the above
    is 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:
    
    生成交叉引用表  
  • 相关阅读:
    rh
    re模块
    粘包现象
    子类调用父类方法
    北大医院条码
    戴德金-连续性和无理数-第1页
    数学名词
    核心英语笔记,含记忆术mnemonics
    python笔记
    收集的句子
  • 原文地址:https://www.cnblogs.com/sky-heaven/p/6863108.html
Copyright © 2011-2022 走看看