首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >lcov: destructor缺失的分支覆盖

lcov: destructor缺失的分支覆盖
EN

Stack Overflow用户
提问于 2017-01-06 01:30:26
回答 2查看 1.3K关注 0票数 0

我的工作环境

  • 西格温
  • lcov 1.13
  • GCC 5.4.0

问题是html中的覆盖率报告告诉析构函数中缺少分支,但析构函数是空的。我也不知道原因。有人能帮我吗?我也尝试用GCC的4.8.0,但结果是一样的

EN

回答 2

Stack Overflow用户

发布于 2017-02-23 17:03:44

我也遇到了同样的问题,我找到了this on stackoverflow。简单地说,有不同类型的析构函数,这取决于您是删除动态分配的对象,还是静态分配的对象析构。

因此,要消除这个缺失的分支覆盖率,您必须创建一个对象

代码语言:javascript
复制
TestClass* a = new TestClass();

代码语言:javascript
复制
TestClass b;

然后确保,它们都被摧毁了,当然,前者

代码语言:javascript
复制
delete a;

然后,应该调用这两种类型的析构函数。

票数 3
EN

Stack Overflow用户

发布于 2020-07-03 23:51:43

一个简单的解决方案是将// GCOVR_EXCL_LINE作为注释添加到您的行中,因为您知道行不是同时执行两个分支。我认为这是一个好主意,根据我的理解,没有另一种方法可以强迫GCOV同时使用析构函数的动态分支和非动态分支。

例如:

代码语言:javascript
复制
TestClass *a = new TestClass;
delete a; // GCOVR_EXCL_LINE

delete a;行排除在覆盖率报告之外。

有关更多详细信息,请参见以下内容:https://gcovr.com/en/master/guide.html#exclusion-markers

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41497545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档