Show inlined frames

Authored by mwolff on May 8 2017, 12:52 PM.

Description

Show inlined frames

This is a major usability improvement for C++ code. Previously,
when we profiled code with heaptrack that was built with compiler
optimizations enabled, most allocations within container classes
where missing some parent frames. Even more confusing, sometimes
we missed the interesting user frames completely, when they
got inlined.

Now, we add all inlined frames to the heaptrack_print output and
also include them in the heaptrack_gui models. The simple
inlining example added by this pach clearly shows the advantage:

Before all we got is this:

1 calls to allocation functions with 1.23KB peak consumption from
main

at /home/milian/projects/src/heaptrack/tests/manual/inlining.cpp:18
in /home/milian/projects/build/heaptrack/tests/manual/inlining

Afterwards, we get all frames:

1 calls to allocation functions with 1.23KB peak consumption from
asdf()

at /home/milian/projects/src/heaptrack/tests/manual/inlining.cpp:3
in /home/milian/projects/build/heaptrack/tests/manual/inlining

bar()

at /home/milian/projects/src/heaptrack/tests/manual/inlining.cpp:8

foo()

at /home/milian/projects/src/heaptrack/tests/manual/inlining.cpp:13

main

at /home/milian/projects/src/heaptrack/tests/manual/inlining.cpp:18

Details

Committed
mwolffMay 8 2017, 12:55 PM
Parents
R45:855330456d6b: Do not clear flamegraph on hide
Branches
Unknown
Tags
Unknown