Quando si utilizza perf report
, non vedo alcun simbolo per il mio programma, invece ottengo output come questo:Come posso ottenere perf a trovare i simboli nel mio programma
$ perf record /path/to/racket ints.rkt 10000
$ perf report --stdio
# Overhead Command Shared Object Symbol
# ........ ........ ................. ......
#
70.06% ints.rkt [unknown] [.] 0x5f99b8
26.28% ints.rkt [kernel.kallsyms] [k] 0xffffffff8103d0ca
3.66% ints.rkt perf-32046.map [.] 0x7f1d9be46650
che è abbastanza uninformative.
Il programma pertinente è costruito con i simboli di debug e lo strumento sysprof
mostra i simboli appropriati, così come Zoom, che credo utilizzi perf
sotto il cofano.
Si noti che questo è su x86-64, quindi il file binario è compilato con , ma questo è il caso quando si esegue anche sotto gli altri strumenti.
E dopo aver provato con '-fno-omit-frame-pointer', che non ha alcun effetto. –
Puoi creare un esempio minimo che mostri il problema? Inizia con un binario di base che non fa e bisecare le differenze. –
@BrianCain, il file binario rilevante è piuttosto grande, e quindi bisecare non è realmente fattibile. Lo proverò su un programma semplice, anche se forse non funzionerà e sarà più facile rintracciarlo. –