Я не уверен, что это правильный форум.
Я пытаюсь проверить простой скомпилированный c-код, но не могу увидеть его главные и дочерние функции в отчете perf. Все, что я вижу, это системные функции и шестнадцатеричные значения. Где я могу отследить мои функции main() и addition()?
#include <stdio.h>
int addition(int num1, int num2)
{
int sum;
/* Arguments are used here*/
sum = num1+num2;
/* Function return type is integer so we are returning
* an integer value, the sum of the passed numbers.
*/
return sum;
}
int main()
{
int var1=32, var2=23;
/* Calling the function here, the function return type
* is integer so we need an integer variable to hold the
* returned value of this function.
*/
int res = addition(var1, var2);
printf ("Output: %d", res);
return 0;
}
Я скомпилировал его, используя gcc t.c -g -fno-omit-frame-pointer -o t
.
perf -g report ./t
perf record -g
Я не могу увидеть свои функции в колонке символов. Report
Я проверил Ваш пример и на моем ноутбуке (Ubuntu 16.04; версия 4.4.128 перфекта) я вижу имя функции, но не всех их.
Я использовал команду perf report
для проверки профилирования, и я получил это.
Многие из строки являются шестнадцатеричными адресами, потому что они соответствуют функции земли ядра, и я не разработчик ядра. IIRC инструменты перфекта являются использованием, чтобы представить или получить большую информацию о поведении ядра, таким образом, это не действительно хорошо адаптировано к программе пространства пользователя.
Почему Вы не используете gprof?