Я пытаюсь найти точное число вызовов функций одной из моих реализованных функций C внутри моего кода. Проект включает в себя несколько файлов C. Какое самое простое решение для определения того, сколько раз функция вызывается во время выполнения программы? В частности, мне интересно узнать, сколько раз определенная функция вызывает другую функцию. Например у меня есть файл C, как:Подсчет количества вызовов функций в исполняемом файле
//file1.c
int main(){
foo1();
return 0;
}
и другие файлы C, как:
//file2.c
void foo1(){
foo2();
...
foo2();
}
и
//file3.c
void foo2(){
foo3();
foo3();
foo3();
}
Теперь у меня есть свой окончательный исполняемый файл a.out
и хотите знать, сколько раз foo3()
называется внутри foo1()
. BTW, я компилирую и запускаю свой проект в Linux.
'foo3' вызван из других функций? –
Если вы хотите знать это изнутри foo3, вы можете объявить статическую переменную внутри foo3, что foo3 будет увеличивать каждый вызов (статическая переменная, объявленная внутри функции, автоматически инициализируется до нуля и сохраняет ее значение от одного вызова к следующему) , В противном случае, если вам нужно знать это из любой точки программы, объявите глобальную переменную, которую foo3 будет увеличивать при каждом вызове. –
Вам нужно закодировать это или вы можете использовать для этого внешний инструмент? –