C(gcc)是否有分析器来分别编码代码行?

Fra*_*ter 11 c profiler profiling

我来自Matlab背景,所以我习惯了一个分析器,它可以描述每一行而不仅仅是每个函数都像gprofcallgrind.有没有C类似功能的探查器?

谢谢!

截图matlab profiler

mik*_*002 12

您可以使用GNU实用程序GCOV进行逐行分析.样本从GCC Docs运行.

$ gcc -fprofile-arcs -ftest-coverage tmp.c
$ a.out
$ gcov tmp.c
  90.00% of 10 source lines executed in file tmp.c
  Creating tmp.c.gcov
Run Code Online (Sandbox Code Playgroud)

文件tmp.c.gcov包含如下输出:

     -:    0:Source:tmp.c
     -:    0:Graph:tmp.gcno
     -:    0:Data:tmp.gcda
     -:    0:Runs:1
     -:    0:Programs:1
     -:    1:#include <stdio.h>
     -:    2:
     -:    3:int main (void)
     1:    4:{
     1:    5:  int i, total;
     -:    6:
     1:    7:  total = 0;
     -:    8:
    11:    9:  for (i = 0; i < 10; i++)
    10:   10:    total += i;
     -:   11:
     1:   12:  if (total != 45)
 #####:   13:    printf ("Failure\n");
     -:   14:  else
     1:   15:    printf ("Success\n");
     1:   16:  return 0;
     -:   17:}
Run Code Online (Sandbox Code Playgroud)


小智 3

Shark 是 Mac OS X 中的分析工具之一,可以做到这一点(甚至可以通过指令进行分析)。我意识到您的屏幕截图是在 Windows 上进行的,因此可能没有帮助,但也许您可以在 Mac 上运行您的代码。您可以尝试Very Sleepy,但我从未使用过它,所以不知道它有多好。