是否有C(GCC)分别介绍代码线的剖面?[英] Is there a profiler for C (gcc) to profile code lines separately?

本文是小编为大家收集整理的关于是否有C(GCC)分别介绍代码线的剖面?的处理方法,想解了是否有C(GCC)分别介绍代码线的剖面?的问题怎么解决?是否有C(GCC)分别介绍代码线的剖面?问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我来自一个matlab背景,所以我习惯了一个探查者,它根据每一条线,而不仅仅是每个函数,如gprof或callgrind.有一个具有类似功能的C的分析器吗?

谢谢!

屏幕截图Matlab Profiler (源: jburkardt在people.sc.fsu.edu )

推荐答案

鲨鱼,Mac OS X中的一个分析工具,可以执行此操作(甚至通过指令甚至通过指令).我意识到你的屏幕截图是在Windows上,以便可能没有帮助,但也许您可以在Mac上运行代码.你可以尝试非常困倦,但我从未使用过它所以不知道它有多好.

其他推荐答案

您可以使用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

文件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:}

其他推荐答案

我相信 callgrind 它.我知道它确实每行循环计数,但我不确定'时间.'

本文地址:https://www.itbaoku.cn/post/359211.html