区块和分支覆盖率有何不同?它们能告诉我们什么?

时间:2019-04-29 13:39:34

标签: c gcc gcov lcov

我想使用gcov基于块和分支覆盖率分析我的代码,如何在gcov中区分它们?我怎么知道代码中的代码块何时开始。 代码位于此处。 https://github.com/dsouzajaison/stackoverflowquestion

I覆盖率仅显示附加功能。我正在使用-a和-b选项来获取块和分支。以下是带有代码和gcov输出的文件。从文件blockcalculator.c.gcov

  • 为什么我可以将所有不同的块都视为block0?
  • 何时块命名从0变为1,2,4 ..?
  • 第10行定义的行块是否有6,7,8,9,10行?
    -:    0:Source:calculator.c
    -:    0:Graph:calculator.gcno
    -:    0:Data:calculator.gcda
    -:    0:Runs:1
    -:    0:Programs:1
    -:    1:#include "calculator.h"
    -:    2:#include <stdio.h>
    -:    3:#include <stdlib.h>
    -:    4:
    1:    5:int main(int argc, char *argv[])
    1:    5-block  0
    -:    6:{
    -:    7:    int a,b, result;
    -:    8:    char opr;
    -:    9:
    1:   10:    if(argc!=4)
    1:   10-block 0

-为什么return -1与第13行的print语句不在同一块中?

来自文件branchcalculator.c.gcov-

  • 第43行为什么总共有7个分支? -分支和块之间有什么区别?

我已经阅读了文档。但是无法理解。 https://gcc.gnu.org/onlinedocs/gcc-7.3.0/gcc/Invoking-Gcov.html#Invoking-Gcov

  • 我也需要对-a选项进行解释。

0 个答案:

没有答案
相关问题