Вот моя системная информация.
$ uname -a
Linux pjchiou-X550JX 4.16.0-041600-generic #201804012230 SMP Sun Apr 1 22:31:39 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
Я использую очень простую C-программу для проверки perf
.
#include <stdio.h>
#include <stdlib.h>
void myloop()
{
for (int i = 0; i < 100000; i++)
printf("%d", i);
}
int main(void)
{
myloop();
return (0);
}
Скомпилировано с:
gcc -g -o test test.c
А затем собрать образец с:
perf record ./test
Наконец, показать отчет:
perf report
Но то, что я вижу в отчете, выглядит так:
# Overhead Command Shared Object Symbol
# ........ ....... ................. ............................
#
9.64% test libc-2.27.so [.] 0x000000000005cb14
6.17% test libc-2.27.so [.] 0x000000000005bf8e
5.75% test libc-2.27.so [.] 0x000000000005885e
5.61% test libc-2.27.so [.] 0x000000000005886b
5.33% test libc-2.27.so [.] 0x00000000000587b0
5.28% test libc-2.27.so [.] 0x000000000005b6ff
5.23% test [kernel.kallsyms] [k] n_tty_write
Почему в столбце " символ " вместо имени функции отображается адрес?
- gdb установлен.
- libc6, libc6-dbg, libc6-установленное устройство.
- Самое высокое разрешение доступа.