gpt4 book ai didi

lcov - 使用 lcov 和 g++ 进行准确的函数计数

转载 作者:行者123 更新时间:2023-12-01 05:30:32 27 4
gpt4 key购买 nike

我正在使用 Ubuntu 12、g++ 和 lcov,后者安装了 apt-get install lcov .

我正在成功编译,并使用 genhtml 生成 html 报告.行覆盖信息看起来不错,但许多函数覆盖计数似乎很奇怪。例如,一个仅包含构造函数和虚拟析构函数的 C++ 类被 lcov 报告为具有 7 个函数。因此,如果我在 session 期间同时调用两者,我的覆盖范围仅为 2/7。

这是一个示例输出,它显示了一个具有一个永远不会被调用的函数的类。我无法弄清楚该功能是什么:

example output

任何人都可以解码损坏的函数名称,解释膨胀的函数计数,并建议如何解决问题?

提前致谢。

更新

好的,自从在下面回答我的原始问题(见评论)后,我现在邀请有关如何防止这些底层 ctors 和 dtors 破坏我的函数覆盖率统计数据的建议。如何将函数计数限制为我自己编写的那些函数?

最佳答案

我想你现在正在一个新项目中,当时你可能没有使用 C++11,但如果你现在这样做,也许这会有所帮助:

class my_class
{
...
my_class(my_class const &) = delete;
...
};

这也意味着您必须为您不希望拥有的所有可能的默认构造函数进行某种形式的声明......现在如果您使用默认构造函数,那么您可能需要增强您的测试,因为 lcov 告诉您你实际上不是在测试它们!应该做这样的事情:
my_class a;
my_class b(a);
my_class c;
c = b;

关于lcov - 使用 lcov 和 g++ 进行准确的函数计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11424748/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com