Sto usando perf record -g
su Linux x86-64 per profilare un programma. Diversi simboli in libc o libstdc ++ hanno 0
come genitore: __GI___strcmp_ssse3
(libc) e strcmp@plt
(libstdc ++) per esempio. (Posso effettivamente rompere questi simboli nel debugger e ottenere un backtrace.)
Mi piacerebbe sapere quali sono i principali chiamanti di queste funzioni e perché non sono registrati. Questo perché libc e libstdc ++ non hanno puntatori di frame su x86_64? E, più praticamente, c'è un modo per aggirare questo?
perf record --call-graph dwarf
risolve questo problema per me. sfortunatamente, sembra che perf abbia problemi a mostrare grafici di chiamata basati sul chiamante (cioè "invertiti") quando si usano informazioni nane. Ecco perché ho iniziato a utilizzare FlameGraph per la visualizzazione.