perf-events não mostrando o StackTraces no debian 8 jessie

1

Eu estou tentando criar um perfil de um programa C simples com perf-events no debian 8 jessie. Eu posso ver símbolos, mas não consigo obter stacktraces. O mesmo procedimento gera bons rastreamentos de pilha no Ubuntu 16.04.

Eu instalei linux-image-amd64-dbg e libc6-dbg . Confirmei que os parâmetros de configuração do kernel incluem CONFIG_KALLSYMS=y

Eu compilei o programa com gcc -g3 -O0 hello.c para ativar os símbolos de depuração.

Eu começo a criar o perfil com o seguinte comando. sudo perf record -g ./a.out

Eu gero um gráfico de chama com o seguinte comando

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

Esta é a listagem de hello.c que estou tentando criar um perfil

#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;
}

Este é o gráfico chama com debian jessie

Este é o gráfico de chama com o ubuntu

Por que os rastreios de pilha estão faltando no debian jessie?

Obrigado Sharath

    
por sha 16.09.2017 / 06:28

0 respostas