相关疑难解决方法(0)

gcov报告的析构函数中的分支是什么?

当我使用gcov来测量C++代码的测试覆盖率时,它会在析构函数中报告分支.

struct Foo
{
    virtual ~Foo()
    {
    }
};

int main (int argc, char* argv[])
{
    Foo f;
}
Run Code Online (Sandbox Code Playgroud)

当我运行gcov并启用分支概率(-b)时,我得到以下输出.

$ gcov /home/epronk/src/lcov-1.9/example/example.gcda -o /home/epronk/src/lcov-1.9/example -b
File 'example.cpp'
Lines executed:100.00% of 6
Branches executed:100.00% of 2
Taken at least once:50.00% of 2
Calls executed:40.00% of 5
example.cpp:creating 'example.cpp.gcov'
Run Code Online (Sandbox Code Playgroud)

困扰我的部分是"至少采取一次:50%的2".

生成的.gcov文件提供了更多详细信息.

$ cat example.cpp.gcov | c++filt
        -:    0:Source:example.cpp
        -:    0:Graph:/home/epronk/src/lcov-1.9/example/example.gcno
        -:    0:Data:/home/epronk/src/lcov-1.9/example/example.gcda
        -:    0:Runs:1
        -:    0:Programs:1
        -:    1:struct Foo
function Foo::Foo() called 1 returned 100% blocks executed 100%
        1:    2:{
function …
Run Code Online (Sandbox Code Playgroud)

c++ gcc code-coverage gcov

39
推荐指数
2
解决办法
9577
查看次数

标签 统计

c++ ×1

code-coverage ×1

gcc ×1

gcov ×1