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