小编MSK*_*MSK的帖子

为什么 GCC 中的代码覆盖率需要传递两个编译器标志

我了解两个编译器标志:需要传递-ftest-coverage -fprofile-arcs才能获取 GCC 中的代码覆盖率。我的问题是,使用 2 个编译器标志来获取覆盖率的原因是什么。另外,如果我们独立使用它们,我们能得到什么?

我尝试仅使用 -fprofile-arcs 标志编译 ac 程序。我没有注意到任何差异。能够生成 .gcno .gcda 和 gcov 文件

c gcc code-coverage gcov

4
推荐指数
1
解决办法
1万
查看次数

ctags:获取C函数结束行号

是否也可以通过 ctags 获取函数结束行号

"ctags -x --c-kinds=f filename.c"
Run Code Online (Sandbox Code Playgroud)

上面的命令列出了函数定义的起始行号。想要一种获取函数结束行号的方法。

其他方法:

awk 'NR > first && /^}$/ { print NR; exit }' first=$FIRST_LINE filename.c
Run Code Online (Sandbox Code Playgroud)

这需要正确格式化代码

示例:文件名.c

  1 #include<stdio.h>
  2 #include<stdlib.h>
  3 int main()
  4 {
  5    const char  *name;
  6 
  7     int a=0
  8     printf("name");
  9     printf("sssss: %s",name);
 10 
 11     return 0;
 12 }
 13 
 14 void code()
 15  {
 16         printf("Code \n");
 17  }
 18 
 19 int code2()
 20    {
 21         printf("code2 \n");
 22         return 1
 23    }
 24 
Run Code Online (Sandbox Code Playgroud)

输入:文件名和函数起始行号。

Example: …
Run Code Online (Sandbox Code Playgroud)

tags awk parsing ctags exuberant-ctags

3
推荐指数
1
解决办法
1841
查看次数

标签 统计

awk ×1

c ×1

code-coverage ×1

ctags ×1

exuberant-ctags ×1

gcc ×1

gcov ×1

parsing ×1

tags ×1