【问题标题】:Excluding certain functions from gcov/lcov coverage results从 gcov/lcov 覆盖结果中排除某些功能
【发布时间】:2011-03-10 22:52:44
【问题描述】:

是否可以从 gcov 覆盖率分析中排除某些函数或代码行。我的代码包含某些用于调试的函数,并且没有作为我的测试套件的一部分来执行。此类功能会降低 gcov 报告的覆盖率。我想从结果中排除这些函数。如果不能通过 gcov,也许可以通过 lcov,但我无法弄清楚。感谢您的帮助。

【问题讨论】:

标签: c++ gcov lcov


【解决方案1】:

我通过一个简单的 awk 脚本运行 lcov --capture 的输出来过滤掉某些源文件。 lcov --capture 的输出格式非常简单,下面的 awk 脚本会过滤掉与 file_pattern 匹配的源文件。我认为可以调整脚本以使其过滤函数而不是文件名。

BEGIN {
        record=""
}

/^SF/ {
        if ( match ($0, "file_pattern" ) ) {
            doprint = 0
        } else {
            doprint = 1
        }
}

/^end_of_record$/ {
        if ( doprint ) {
            print record $0
        }
        record = ""
        next
}

{
    record=record $0 "\n"
}

【讨论】:

    猜你喜欢
    • 2016-11-21
    • 1970-01-01
    • 1970-01-01
    • 2017-02-12
    • 2013-09-16
    • 2022-10-08
    • 2021-08-29
    • 1970-01-01
    • 2017-06-19
    相关资源
    最近更新 更多