如何解决gcov 中的“程序”标题行是什么意思
当我运行一次单元测试可执行文件时,我习惯于在 GCOV 文件中看到这些标题行:
-: 0:Source:../../src/file1.c
-: 0:Graph:build/file1.gcno
-: 0:Data:build/file1.gcda
-: 0:Runs:1
-: 0:Programs:1
但是,有时我会看到如下所示的标题:
-: 0:Source:../../src/file2.c
-: 0:Programs:2
我不确定为什么标题看起来不同。两个测试目录/makefile 的设置方式相同。文件 2 的覆盖率数据看起来也完全正确。
具体为什么是“程序:2”?这条线是什么意思?我查看了 man page,但找不到对该标题含义的任何解释。直觉上,我认为这意味着关联的对象被链接到可执行文件两次而不是一次。但事实并非如此,只有一个可执行文件,而且只运行一次。
编辑:我使用的是 gcov 7.5.0。
解决方法
gcov 7.5.0 的来源是 here。
下面的代码段显示了打印标题的位置。 File2 恰好位于包含多个源文件的目录中。因此,图表、数据和运行标题被省略。
File: gcov.c
2506: fprintf (gcov_file,"%9s:%5d:Source:%s\n","-",src->coverage.name);
2507: if (!multiple_files)
2508: {
2509: fprintf (gcov_file,"%9s:%5d:Graph:%s\n",bbg_file_name);
2510: fprintf (gcov_file,"%9s:%5d:Data:%s\n",2511: no_data_file ? "-" : da_file_name);
2512: fprintf (gcov_file,"%9s:%5d:Runs:%u\n",object_runs);
2513: }
2514: fprintf (gcov_file,"%9s:%5d:Programs:%u\n",program_count);
2515:
program_count
在第 1570 行递增。我假设这会发生两次,因为有两个数据文件。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。