【问题标题】:how can I display all function name from cscope database?如何显示 cscope 数据库中的所有函数名称?
【发布时间】:2014-07-09 02:44:54
【问题描述】:

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

注意:cscope source code is available for download

【问题讨论】:

  • 答案是否涵盖了您的问题?如果是,请考虑将答案标记为已回答。

标签: cscope


【解决方案1】:

尝试以下方法:

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. 通过uniq获取独特的物品。

cscope 选项(见http://cscope.sourceforge.net/cscope_man_page.html):

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

  • -L 与 -num 模式选项。

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

    • 0:找到这个 C 符号:
    • 1:找到这个全局定义:
    • 2:查找此函数调用的函数:
    • 3:查找调用此函数的函数:
    • 4:找到这个文本字符串:
    • 5:更改此文本字符串:
    • 6:找到这个 egrep 模式:
    • 7:找到这个文件:
    • 8:查找文件#包括此文件:

【讨论】:

  • 有什么方法可以从一个文件/模块中找到所有函数onyl?
  • 这是对面向行的界面的很好的解释!谢谢!
猜你喜欢
  • 2018-07-17
  • 1970-01-01
  • 2013-08-11
  • 2019-09-10
  • 2019-03-27
  • 1970-01-01
  • 2018-12-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多