Ferramenta Perfux linux: Nome da função não mostrado na coluna de símbolos [closed]

0

Não sei se este é o fórum certo.

Estou tentando fazer um benchmark de um código c simples compilado, mas não consigo ver suas funções principais e secundárias no relatório perf. Tudo o que vejo são funções do sistema e valores hexadecimais. Onde posso rastrear minhas funções main () e 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;
  }

Eu o compilei usando gcc t.c -g -fno-omit-frame-pointer -o t . %código% perf -g report ./t

Não consigo ver minhas funções na coluna de símbolos. Relatório

    
por RNA 31.05.2018 / 20:05

1 resposta

0

Eu verifiquei o seu exemplo e no meu laptop (Ubuntu 16.04; perf version 4.4.128) eu posso ver o nome da função, mas nem todos eles.

Eu usei o comando perf report para verificar a criação de perfil e eu obtive isso .

Muitas das linhas são endereços hexadecimais porque correspondem à função kernel-land e eu não sou um desenvolvedor de kernel. As ferramentas perf são usadas para criar perfis ou recuperar muitas informações sobre o comportamento do kernel, por isso não é muito bem adaptado para o programa usuário-terra.

Por que você não usa gprof?     
por frozar 31.05.2018 / 20:35