00. 目录
文章目录
01. 命令概述
gcov命令是一款测试程序的代码覆盖率的工具。
02. 命令格式
用法:gcov [选项]... SOURCE|OBJ...03. 常用选项
显示代码覆盖信息。
  -h, --help                      打印此帮助并退出
  -v, --version                    打印版本号并退出
  -a, --all-blocks                显示每个基本块的信息
  -b, --branch-probabilities      输出包含分支概率
  -c, --branch-counts             给出跳转的分支数,而不是百分比
  -n, --no-output                 不创建输出文件
  -l, --long-file-names           为包含进来的源文件使用长输出文件名
  -f, --function-summaries        输出每个函数的小结信息
  -o, --object-directory DIR|FILE 在 DIR 中搜索目标文件,或搜索名为 FILE 的目标文件
  -s, --source-prefix DIR         Source prefix to elide
  -r, --relative-only             Only show data for relative sources
  -p, --preserve-paths            保留所有路径名
  -u, --unconditional-branches    同时显示无条件跳转数
  -d, --display-progress          显示进度信息04. 参考示例
4.1 显示代码覆盖信息
[deng@localhost 1gcc] gcc -fprofile-arcs -ftest-coverage test.c
[deng@localhost 1gcc] ls
test      test.c     test.gcno
[deng@localhost 1gcc]./test
[deng@localhost 1gcc] ls
test      test.c    test.gcda test.gcno
[deng@localhost 1gcc] gcov test.c
File 'test.c'
Lines executed:77.78% of 9
test.c:creating 'test.c.gcov'
[deng@localhost 1gcc] cat test.c.gcov
    -:    0:Source:test.c
    -:    0:Graph:test.gcno
    -:    0:Data:test.gcda
    -:    0:Runs:1
    -:    0:Programs:1
    -:    1:#include<stdio.h>
    -:    2:
    -:    3:int main(int argc, char *argv[])
    -:    4:{
    1:    5:  int i = 0;
  202:    6:  for (i = 0; i < 100; i++) {
  100:    7:    printf("add i atomic");
  100:    8:  }
    -:    9:
    1:   10:  if (i > 200) {
#####:   11:    printf("i is bigger than 200");
#####:   12:  } else {
    1:   13:    printf("is is less then 200");
    -:   14:  }
    1:   15:  return 0;
    -:   16:}05. 附录
参考:【Linux】一步一步学Linux系列教程汇总










