【发布时间】:2012-07-10 14:30:23
【问题描述】:
我使用的是 Ubuntu 12、g++ 和 lcov,后者使用 apt-get install lcov 安装。
我正在成功编译并生成带有genhtml 的html 报告。行覆盖信息看起来不错,但许多函数覆盖计数似乎很奇怪。例如,一个仅包含构造函数和虚拟析构函数的 C++ 类被 lcov 报告为具有 7 个函数。因此,如果我在会话期间同时调用两者,我的覆盖率只有 2/7。
这是一个示例输出,它显示了一个具有一个永远不会被调用的函数的类。我不知道那个函数是什么:
任何人都可以解码损坏的函数名称,解释膨胀的函数计数,并建议如何解决问题吗?
提前致谢。
更新
好的,自从在下面回答了我最初的问题(参见 cmets),我现在就如何防止这些幕后的 ctors 和 dtors 破坏我的函数覆盖率统计数据提出建议。如何将函数计数限制为我自己编写的那些函数?
【问题讨论】:
-
好的,多一点挖掘,使用
c++filt命令解开名称,帮助我解决了这个问题。答案与自动生成的构造函数和析构函数有关。在引擎盖下,比我意识到的要多得多。看到一个很好的解释here on StackOverflow。 -
你应该提供这个作为答案而不是评论。
标签: lcov