这是gtags
版本5.7.1,与Ubuntu 14.04一起打包的版本。这是gtags
的旧版本。
Linux内核有一个gtags
Make目标,它ultimately results in the commandall_target_sources | gtags -i -f -
-i
告诉gtags
执行增量更新-f
告诉gtags
从下面的文件中读取源文件列表(检查符号)。-f -
表示从stdin读取列表。all_target_sources
是输出所有相关.c和.h文件列表的function。
当我运行make gtags
时,生成的标记表是空的(GTAGS、GPATH等都有16字节的大小,看起来只是一个头)。
如果我修改script that generates tags以便它使用以下内容:
all_target_sources > sources.list
gtags -iv -f sources.list
我得到了同样的结果。添加的
-v
将为我提供以下输出:checking /home/me/sources/linux/GTAGS
GTAGS found at '/home/me/sources/linux/GTAGS'.
[Tue Jul 05 10:21:49 BST 2016] Gtags started.
Using default configuration.
Tag found in '/home/me/sources/linux'.
Incremental update.
[Tue Jul 05 10:21:49 BST 2016] Updating 'GTAGS'.
[Tue Jul 05 10:21:49 BST 2016] Updating 'GRTAGS'.
[Tue Jul 05 10:21:49 BST 2016] Updating 'GSYMS'.
Global databases have been modified.
[Tue Jul 05 10:21:49 BST 2016] Done.
但是当我直接从shell运行
gtags -iv -f sources.list
时(使用脚本中剩下的sources.list),我发现构建了一个合适的标记表。我已经从script内部转储了环境,并将其与即时环境进行了比较,没有明显影响
gtags
的差异。有人知道可能导致这种情况的任何
gtags
行为吗?[元]对不起,没有
gtags
或gnu-global
标记,我没有创建它的代表。 最佳答案
我还没有找到问题的根源,但是在从源安装latest version of GNU Global之后,问题就消失了。所以我认为这可能是旧版本的gtags
中的一个bug。
关于linux - make gtags在Linux内核上产生空数据库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38199998/