Kva tyder heap?
Kva tyder «I fil [heap]»?
Dette tyder at sysprof trur ein funksjon vart kalla frå ein stad i programmet sitt heap (der malloc tildeler minne) heller enn frå kode-delen (der køyrbar kode vanlegvis ligg.) Det finst fleire moglege forklaringar.
JIT-kompilatorar (Just in Time)
Språk som Java kan lage køyrbar kode medan eit program køyrer og lagre han i heapen. Sysprof rapporterer situasjonen korrekt i dette tilfellet.
Kompilatorar som optimaliserer
C- og C++-kompilatorar kan optimalisere bort informasjon som trengst for å avgjere kven som kallar ein funksjon, slik at han vert feilaktig tolka som [heap]. Du kan framleis sjå kor ofte kvar funksjon vert kalla av programmet, men ikkje alltid frå kvar.
For gcc vil flagget -fno-omit-frame-pointer hindre denne optimaliseringa. Flagget er ikkje alltid nødvendig, til dømes på x86_64-maskinar er det berre nødvendig med -O3-optimalisering.
For å få det mest detaljerte og nøyaktige kall-treet frå uoptimalisert kode, bruk desse flagga: -ggdb -fno-omit-frame-pointer -O0