Как собрать информацию о пользовательских функциях в callgrind? - PullRequest
0 голосов
/ 07 января 2019

Я использую следующую программу main.c.

int f2(int i) { return i + 2; }
int f1(int i) { return f2(2) + i + 1; }
int f0(int i) { return f1(1) + f2(2); }
int pointed(int i) { return i; }
int not_called(int i) { return 0; }

int main(int argc, char **argv) {
  f0(1);
  f1(1);
  int (*f)(int);
  f = pointed;
  if (argc == 1)
    f(1);
  if (argc == 2)
    not_called(1);
  return 0;
}

Когда я проверяю результаты, я не получаю информацию о пользовательской функции f0. Как заставить callgrind генерировать информацию о пользовательских функциях.

$ gcc -g -Wall -pedantic -o main.exe main.c
$ valgrind --tool=callgrind --callgrind-out-file=/dev/stdout ./main.exe | gprof2dot -n0 -e0 -f callgrind
...