Improve the bottom-up conversion to top-down and caller/callee data
authorMilian Wolff <mail@milianw.de>
Sun, 26 Feb 2017 20:25:15 +0000 (21:25 +0100)
committerMilian Wolff <mail@milianw.de>
Sun, 26 Feb 2017 20:35:18 +0000 (21:35 +0100)
commitb77cd26eaa1b59eadb652455cc2322f503c0b680
tree152e6fb6a436e4d4cdbe40b3d1a79f8e55b17a1d
parentec6434e74e536d8e93d5248969dd9bb91045d85f
Improve the bottom-up conversion to top-down and caller/callee data

When we encounter broken backtraces, we may not go all the way up
to main. In such cases, a non-leaf frame may actually have a cost
higher than the sum of its children. In these cases, we also have
to hande the difference in cost just like for a normal leaf node.

The manual test I added does not cover this properly, as the
unwinding is too reliable and thus we do not run into the corner case.
In real-world profiles though, this does occur and adds some errors.
This is now fixed and the caller/callee and top-down view become
more reliable.
src/analyze/allocationdata.h
src/analyze/gui/parser.cpp
tests/manual/CMakeLists.txt
tests/manual/test_aggregation.cpp [new file with mode: 0644]