Store backtrace information in a memory efficient tree structure.
authorMilian Wolff <mail@milianw.de>
Wed, 4 Jun 2014 12:18:14 +0000 (14:18 +0200)
committerMilian Wolff <mail@milianw.de>
Wed, 4 Jun 2014 17:42:36 +0000 (19:42 +0200)
commitc92e49000453af99fa509fcd30d4a6c9ea1d9332
tree2a7a0f887d3163bf56b816c42fdfce9a2221edbd
parentd027ffe1378e5ba29da2d3b8b5fc28e7bfe05fec
Store backtrace information in a memory efficient tree structure.

Instead of storing all individual traces that ever call any of the
allocation functions, we now store a tree of instruction pointers.

The tree is constructed from top-to-bottom and each node representing
an instruction pointer gets associated with a unique index. This
index is enough to reconstruct the backtrace from that point by
iterating over the parent indices, which is now done in the evaluation
program.

A nice side effect is that the data file becomes smaller for bigger
application evaluation runs, as common parts at the beginning of
every allocation trace can be implicitly shared.
malloctrace.cpp
malloctrace_main.cpp
trace.h [new file with mode: 0644]
tracetree.h [new file with mode: 0644]