gcov 生成正确的输出,但 gcovr 不生成

问题描述 投票:0回答:1

在此处运行 gcovr 的设置示例:https://gcovr.com/en/stable/guide.html#getting-started 我可以构建文件并看到运行时的以下输出

gcovr -r .

 % gcovr -r .          
------------------------------------------------------------------------------
                           GCC Code Coverage Report
Directory: .
------------------------------------------------------------------------------
File                                       Lines    Exec  Cover   Missing
------------------------------------------------------------------------------
example.cpp                                    0       0    --%   
------------------------------------------------------------------------------
TOTAL                                          0       0    --%
------------------------------------------------------------------------------

如果我直接运行

gcov example.cpp
,我可以看到生成的.gcov数据是正确的:

% gcov example.cpp   
File 'example.cpp'
Lines executed:87.50% of 8
Creating 'example.cpp.gcov'

我不确定这个 gcov 输出和它的 gcovr 解释之间的脱节在哪里。

我尝试过降级到较旧的 gcovr 版本、在其他项目上运行该命令以及切换 python 版本,但没有看到任何不同的行为。

我的 gcov 和 gcc 来自 Xcode 命令行工具。 gcovr 已通过 pip 安装(在带有 python 3.8.5 的 pyenv 中)

编辑:添加详细输出:

gcovr -r . -v
Filters for --root: (1)
- re.compile('^/Test/')
Filters for --filter: (1)
- DirectoryPrefixFilter(/Test/)
Filters for --exclude: (0)
Filters for --gcov-filter: (1)
- AlwaysMatchFilter()
Filters for --gcov-exclude: (0)
Filters for --exclude-directories: (0)
Scanning directory . for gcda/gcno files...
Found 2 files (and will process 1)
Pool started with 1 threads
Processing file: /Test/example.gcda
Running gcov: 'gcov /Test/example.gcda --branch-counts --branch-probabilities --preserve-paths --object-directory /Test' in '/var/folders/bc/20q4mkss6457skh36yzgm2bw0000gp/T/tmpo4mr2wh4'
Finding source file corresponding to a gcov data file
  currdir      /Test
  gcov_fname   /var/folders/bc/20q4mkss6457skh36yzgm2bw0000gp/T/tmpo4mr2wh4/example.cpp.gcov
               ['        -', '    0', 'Source', 'example.cpp\n']
  source_fname /Test/example.gcda
  root         /Test
  fname        /Test/example.cpp
Parsing coverage data for file /Test/example.cpp
Gathered coveraged data for 1 files
------------------------------------------------------------------------------
                           GCC Code Coverage Report
Directory: .
------------------------------------------------------------------------------
File                                       Lines    Exec  Cover   Missing
------------------------------------------------------------------------------
example.cpp                                    0       0    --%   
------------------------------------------------------------------------------
TOTAL                                          0       0    --%
------------------------------------------------------------------------------
gcov gcovr
1个回答
0
投票

检查 gcc 和 gcov 版本。

gcc -v
gcov --version

我在版本不同时遇到这个问题

© www.soinside.com 2019 - 2024. All rights reserved.