Назад | Перейти на главную страницу

perf-events не показывает StackTraces в debian 8 jessie

Я пытаюсь профилировать простую программу C с perf-events на debian 8 jessie. Я вижу символы, но не могу получить трассировку стека. Та же процедура генерирует хорошие трассировки стека в ubuntu 16.04.

Я установил linux-image-amd64-dbg и libc6-dbg. Я подтвердил, что параметры конфигурации ядра включают CONFIG_KALLSYMS=y

Я скомпилировал программу с gcc -g3 -O0 hello.c чтобы включить символы отладки.

Я начинаю профилирование с помощью следующей команды. sudo perf record -g ./a.out

Я создаю график пламени с помощью следующей команды

sudo perf script | ~/code/FlameGraph/stackcollapse-perf.pl | \
~/code/FlameGraph/flamegraph.pl > perf-kernel.svg

Это список для hello.c, который я пытаюсь профилировать.

#include <stdio.h>
#include <unistd.h>


void do2() {
    int fd = fileno(f);
    char buf[100];
    while(1) {
        read(fd, buf, sizeof(buf)/sizeof(buf[0]));
    }
}

int main(void)
{
    do2();
    return 0;
}

Это граф пламени с debian jessie

Это граф пламени с ubuntu

Почему в debian jessie отсутствуют трассировки стека?

Спасибо, Шарат