llvm-cov覆盖率数据中高亮颜色、gap regions及数字含义咨询
llvm-cov 覆盖率报告核心问题解析
一、Gap Regions 含义与颜色代表信息
Gap regions用于消除覆盖率报告中的异常伪影,例如在已覆盖行末尾出现的红色“未执行”高亮,或在未执行行开头出现的蓝色“已执行”高亮。
- Gap Regions 作用:解决编译器生成指令与源码行不完全对齐导致的视觉错误——比如某行代码实际只有中段被执行,但工具误将行尾标为红色、行首标为蓝色,Gap Regions会精准修正这些高亮边界,让颜色匹配真实执行的代码片段。
- 颜色含义:
- 蓝色:代表已执行的代码区域
- 红色:代表未执行的代码区域
二、悬浮数字与侧边数字的含义
- 侧边数字:显示在代码行左侧的数字,代表整行代码的执行次数。0表示该行从未被执行;正数表示该行被执行的总次数。
- 悬浮数字:鼠标悬停在代码片段上时弹出的数字,代表该细分代码片段的执行次数。比如一行代码包含多个分支逻辑,每个分支的执行次数会通过悬浮数字单独展示,实现更细粒度的覆盖统计。
三、llvm-cov 专属核心规则
- 源码级 instrumentation:基于Clang编译时插入的覆盖率探针,直接统计源码语句、分支、函数的执行情况,而非基于二进制指令的粗略统计,精度更高。
- Gap Regions 自动修正:专属的边界修正机制,自动调整高亮区域,避免指令与源码行不对齐导致的视觉异常,这是部分其他覆盖率工具不具备的特性。
- 精细化覆盖区分:明确区分「完全覆盖」(整行所有代码片段都被执行)、「部分覆盖」(行内仅部分代码片段被执行),并通过颜色和数字直观展示。
- 多维度统计维度:支持行覆盖率、分支覆盖率、函数覆盖率三种核心统计维度,报告中会分别展示各维度的覆盖占比。
内容的提问来源于stack exchange,提问作者sloorush
相关产品推荐
相关产品推荐

