如何从cscope数据库中显示所有功能名称?

时间:2014-05-20 17:44:29

标签: cscope

我试图找到一种方法来转储所有函数名称及其来自cscope数据库的路径。有没有办法从cscope CLI做到这一点?

注意:cscope source code is available for download

1 个答案:

答案 0 :(得分:11)

尝试以下方法:

cscope -R -L -2 ".*" | awk -F ' ' '{print $2 "#" $1}' | sort | uniq
  1. 命令cscope -R -L -2 ".*"将输出被调用的函数 任何功能(见下面选项的说明)。对于找到的每个引用,cscope输出一行,包含文件名,函数名,行号和行文本,用空格分隔。
  2. 使用awk提取由$2分隔的函数名称$1和文件名#。如果您需要其他输出字段或分隔符,请更改$2$1和分隔符#
  3. 使用sort
  4. 对输出进行排序
  5. 使用uniq获取唯一项目。
  6. cscope个选项(请参阅http://cscope.sourceforge.net/cscope_man_page.html):

    • -R递归源文件的子目录。

    • -L使用时使用面向行的输出进行单次搜索 -num pattern option。

    • -2 ".*"转到输入字段num(此处从0开始的字段2)并查找 模式(这里为.*)。您可以在cscope的屏幕模式下查看输入字段。这可能会因您使用的版本而异。 debian版本15.8a的字段是:

      • 0:找到这个C符号:
      • 1:找到这个全球定义:
      • 2:查找此功能调用的函数:
      • 3:查找调用此函数的函数:
      • 4:找到此文字字符串:
      • 5:更改此文字字符串:
      • 6:找到这个egrep模式:
      • 7:找到这个文件:
      • 8:查找文件#including this file: