sdk/tools/heaptrack.git
8 years agoDecrease indentation which allows us to show deeper backtraces with less space to...
Milian Wolff [Thu, 21 Jan 2016 20:03:54 +0000 (21:03 +0100)]
Decrease indentation which allows us to show deeper backtraces with less space to the left.

There is still work left to be done to have a nice GUI for
deep backtraces, potentially by not increasing the indentation
depth when the merged backtrace has no forks.

8 years agoMake chart tooltips better readable.
Milian Wolff [Fri, 15 Jan 2016 13:06:37 +0000 (14:06 +0100)]
Make chart tooltips better readable.

8 years agoUse std::tie instead of std::make_tuple for lexicographical ordering.
Milian Wolff [Mon, 4 Jan 2016 21:41:47 +0000 (22:41 +0100)]
Use std::tie instead of std::make_tuple for lexicographical ordering.

std::tie takes the arguments by reference, whereas make_tuple copies
them. We want the former.

See also: http://www.cppsamples.com/common-tasks/lexicographic-ordering.html

8 years agoShow data as soon as it is available.
Milian Wolff [Wed, 16 Dec 2015 12:37:22 +0000 (13:37 +0100)]
Show data as soon as it is available.

This way one can investigate the data table while waiting for the
charts to be built up, which can take some time for large data
files.

8 years agoSort cost columns initially in descending order.
Milian Wolff [Wed, 16 Dec 2015 11:56:54 +0000 (12:56 +0100)]
Sort cost columns initially in descending order.

8 years agoAdd some indication on the file load process.
Milian Wolff [Wed, 16 Dec 2015 11:56:42 +0000 (12:56 +0100)]
Add some indication on the file load process.

8 years agoDisplay pretty-printed byte sizes in tree model.
Milian Wolff [Wed, 16 Dec 2015 11:30:42 +0000 (12:30 +0100)]
Display pretty-printed byte sizes in tree model.

8 years agoSet proper axis type for temporary allocation plot.
Milian Wolff [Wed, 16 Dec 2015 10:59:08 +0000 (11:59 +0100)]
Set proper axis type for temporary allocation plot.

8 years agoDon't duplicate allocation infos when reparsing.
Milian Wolff [Wed, 16 Dec 2015 10:34:49 +0000 (11:34 +0100)]
Don't duplicate allocation infos when reparsing.

8 years agoReuse PointerMap for backwards compatibility.
Milian Wolff [Tue, 15 Dec 2015 17:34:30 +0000 (18:34 +0100)]
Reuse PointerMap for backwards compatibility.

This also makes the size histogram work with older data files.

8 years agoAdd size histogram to heaptrack_gui.
Milian Wolff [Tue, 15 Dec 2015 16:46:04 +0000 (17:46 +0100)]
Add size histogram to heaptrack_gui.

This tracks the number of times allocations of a certain size are
requested and displays the data in a histogram. Note that the sizes
are binned in the following byte ranges:

0-8
9-16
17-32
33-64
65-128
129-256
257-512
513-1024
>1024

8 years agoReject data files of newer heaptrack versions.
Milian Wolff [Mon, 14 Dec 2015 17:48:03 +0000 (18:48 +0100)]
Reject data files of newer heaptrack versions.

8 years agoOptimize tracking of active allocations.
Milian Wolff [Mon, 14 Dec 2015 17:24:34 +0000 (18:24 +0100)]
Optimize tracking of active allocations.

Instead of mapping the pointer to a pair of allocated size and
trace index, we intern the pair and map the pointer to a 32bit index.
This assumes that not more than 4.294.967.295 different pairs occur,
which could theoretically be broken by allocating different sizes
in a loop. Practically, I've never seen this happen. If it really
breaks we can always bump it to a 64bit index later.

Furthermore, this patch introduces a new PointerMap, which drastically
reduces the memory overhead of tracking the allocations. The benchmark
which also gets added here, shows that its overhead is only ~20%
compared to the 100% overhead of a simple hash map. Also note that
even google's sparse_hash_map only gets down to 50% overhead.
Even better, the PointerMap implementation is faster than google's
sparse_hash_map. This is possible by leveraging some information about
memory allocations, which return pointers to pages. Thus the pointers
are clustered and we can shrink a 64bit pointer to an common shared
base pointer and a small 16bit offset.

On my machine, the runtime performance is close to that of the simple
hash map. As such, I decided to move this allocation tracking into
heaptrack_interpret itself. This drastically reduces the file size
of heaptrack data files, sometimes cutting the size into half. Even
better, this speeds some heaptrack benchmarks, as less data is written
to disk. And of course all of this leads to an much improved
performance of heaptrack_gui and heaptrack_print.

8 years agoAlso make the number of sub traces of peaks configurable.
Milian Wolff [Fri, 11 Dec 2015 20:34:33 +0000 (21:34 +0100)]
Also make the number of sub traces of peaks configurable.

8 years agoMake number of reported peaks configurable
David Landell [Fri, 11 Dec 2015 20:30:37 +0000 (21:30 +0100)]
Make number of reported peaks configurable

Make it possible to control number of reported peaks in heaptrack_print

REVIEW: 126282

From 98a061bee3879fcb5c01728d63c39b6773705108 Mon Sep 17 00:00:00 2001
From: David Landell <david.landell.dl@gmail.com>
Date: Wed, 2 Dec 2015 19:04:59 +0100
Subject: [PATCH] Make number of reported peaks configurable

8 years agoAdd .reviewboardrc file for rbt integration.
Milian Wolff [Fri, 11 Dec 2015 20:27:54 +0000 (21:27 +0100)]
Add .reviewboardrc file for rbt integration.

8 years agoAdd version to heaptrack data files.
Milian Wolff [Fri, 11 Dec 2015 20:17:14 +0000 (21:17 +0100)]
Add version to heaptrack data files.

8 years agoDon't check module map sanity in non-debug builds of heaptrack.
Milian Wolff [Fri, 11 Dec 2015 20:13:23 +0000 (21:13 +0100)]
Don't check module map sanity in non-debug builds of heaptrack.

8 years agoShow temporary allocations in heaptrack_gui.
Milian Wolff [Thu, 10 Dec 2015 14:56:48 +0000 (15:56 +0100)]
Show temporary allocations in heaptrack_gui.

8 years agoFind temporary allocations in heaptrack_print.
Milian Wolff [Thu, 10 Dec 2015 14:35:43 +0000 (15:35 +0100)]
Find temporary allocations in heaptrack_print.

8 years agoFix regression: the pointer index is still 64bit.
Milian Wolff [Wed, 9 Dec 2015 20:45:59 +0000 (21:45 +0100)]
Fix regression: the pointer index is still 64bit.

8 years agoFix compiler warning
Milian Wolff [Wed, 9 Dec 2015 19:39:58 +0000 (20:39 +0100)]
Fix compiler warning

8 years agoOptimize: Reduce memory cost for tracking active allocations.
Milian Wolff [Mon, 7 Dec 2015 22:10:58 +0000 (23:10 +0100)]
Optimize: Reduce memory cost for tracking active allocations.

We split the hash into two, one for small allocations up to
numeric_limits<uint32_t>::max, and one for the bigger rest. This
allows us to reduce the cost by up to a factor of 2 for some apps.
A notable example here is heaptrack_gui itself, as it does tons of
small allocations for its lookup tables, which are long-lived.

In one test case this reduces the memory consumption of heaptrack by
up to 1GB for me.

8 years agoUse uint32_t for indices.
Milian Wolff [Mon, 7 Dec 2015 21:48:43 +0000 (22:48 +0100)]
Use uint32_t for indices.

This allows us to save some memory and opens up more possibilities
for future optimizations. And 4,294,967,295 should still be more
than enough space for our lists of traces, strings etc. pp.

8 years agoOptimize: Reduce memory consumption of RowData for TreeModel by ~20%.
Milian Wolff [Sun, 6 Dec 2015 16:46:18 +0000 (17:46 +0100)]
Optimize: Reduce memory consumption of RowData for TreeModel by ~20%.

By interning the common LocationData we can save quite some memory
for large data sets. Still, the large tree is still easily hogging
up gigabytes of memory...

8 years agoGenerate flame graph in background thread.
Milian Wolff [Sat, 5 Dec 2015 01:27:55 +0000 (02:27 +0100)]
Generate flame graph in background thread.

Also add a temporary text that indicates we are generating the graph.

8 years agoMake it possible to switch between bottom-up/top-down flame graph.
Milian Wolff [Sat, 5 Dec 2015 01:20:14 +0000 (02:20 +0100)]
Make it possible to switch between bottom-up/top-down flame graph.

The context menu has a new action now to switch the view mode of
the flame graph.

8 years agoBuild flame graph on demand.
Milian Wolff [Sat, 5 Dec 2015 00:50:39 +0000 (01:50 +0100)]
Build flame graph on demand.

Reduces memory consumption when the flame graph is not being displayed.

8 years agoRemove duplicate component
Milian Wolff [Sun, 15 Nov 2015 14:01:47 +0000 (15:01 +0100)]
Remove duplicate component

8 years agoDefault CMAKE_BUILD_TYPE to RelWithDebInfo.
Milian Wolff [Sun, 15 Nov 2015 13:56:42 +0000 (14:56 +0100)]
Default CMAKE_BUILD_TYPE to RelWithDebInfo.

We need compiler optimizations for the heaptrack code, as it
is otherwise really slow to run.

9 years agoAlways pass false for exe in elf_add call.
Adrian Băcîrcea [Sun, 25 Oct 2015 15:53:33 +0000 (17:53 +0200)]
Always pass false for exe in elf_add call.

Basically, if you pass the isExe flag to elf_add, libbacktrace will
see that it's an ET_DYN executable which means that the sections
can be relocated on load so it will defer to dl_iterate_phdr to get
the real addresses. It will do that only when you call
backtrace_pcinfo which, behind the scenes, ends up calling
backtrace_initialize and that will do the dl_iterate_phdr for the
executable which is wrong since the executable we want to get the
symbols on is not the current one (which is heaptrack_interpret) and
we already get the base addresses correctly from the main process
through the pipe. So there's no need to ever pass isExe = true.

9 years agoReserve space for chart data.
Milian Wolff [Fri, 23 Oct 2015 09:43:29 +0000 (11:43 +0200)]
Reserve space for chart data.

9 years agoOptimize: evaluate top-down data in parallel to chart data.
Milian Wolff [Fri, 23 Oct 2015 09:36:35 +0000 (11:36 +0200)]
Optimize: evaluate top-down data in parallel to chart data.

For a larger data file, this reduces the parse time from ~21s
to 15s on my machine.

9 years agoOptimize: only do one hash lookup instead of three per IpIndex.
Milian Wolff [Fri, 23 Oct 2015 09:11:12 +0000 (11:11 +0200)]
Optimize: only do one hash lookup instead of three per IpIndex.

This is still one of the hotspots when parsing large data files,
but at least it makes it a bit faster.

9 years agoOptimize: Replace QHash with std::array.
Milian Wolff [Fri, 23 Oct 2015 08:49:47 +0000 (10:49 +0200)]
Optimize: Replace QHash with std::array.

We now know that chart cost data is monotonously indexed and can
thus use a plain array over a QHash. This is much quicker to index
into in Parser::handleTimeStamp, and removes a hotspot found with
perf when analyzing a big data file.

9 years agoMinor: move newline for readbility
Milian Wolff [Thu, 10 Sep 2015 15:05:51 +0000 (17:05 +0200)]
Minor: move newline for readbility

9 years agoIncrease max chart datapoints to 500.
Milian Wolff [Sun, 11 Oct 2015 21:40:08 +0000 (23:40 +0200)]
Increase max chart datapoints to 500.

9 years agoOnly allocate 100 brushes for the flamegraph.
Milian Wolff [Sun, 11 Oct 2015 16:19:05 +0000 (18:19 +0200)]
Only allocate 100 brushes for the flamegraph.

More colors are probably not discernible anyways. This way,
we can save a couple of megabytes of memory for large input
files.

9 years agoUse two-pass over input data to speed up chart building.
Milian Wolff [Sun, 11 Oct 2015 16:09:43 +0000 (18:09 +0200)]
Use two-pass over input data to speed up chart building.

This way, we can look at the top N hotspots after the first parse,
and then quickly iterate over the file again, discarding most lines.
Only the lines for (de-)allocations must be looked at, everything
else can be reused from the first parse.

Now, we won't spend minutes/hours to create chart data, as we can
look at the explicit hotspots which we found once before. No more
costly merging or sorting of the allocation data on every timestamp.

9 years agoOnly create one chart data per second.
Milian Wolff [Sun, 11 Oct 2015 14:01:52 +0000 (16:01 +0200)]
Only create one chart data per second.

This way we can run heaptrack on large data files.

In the future, this will be restructured to make it configurable.

9 years agoMake sure the ChartMergeData is nothrow-move-assignable.
Milian Wolff [Sun, 11 Oct 2015 13:46:58 +0000 (15:46 +0200)]
Make sure the ChartMergeData is nothrow-move-assignable.

9 years agoCache ip addresses.
Milian Wolff [Sun, 11 Oct 2015 13:46:42 +0000 (15:46 +0200)]
Cache ip addresses.

9 years agoFix wrong assertion
Milian Wolff [Sun, 11 Oct 2015 13:46:30 +0000 (15:46 +0200)]
Fix wrong assertion

9 years agoDisable modeltest.
Milian Wolff [Sun, 11 Oct 2015 12:28:15 +0000 (14:28 +0200)]
Disable modeltest.

I'll write a proper test soon and add the ModelTest there.

9 years agoRestructure test code layout, import catch and use that.
Milian Wolff [Fri, 25 Sep 2015 05:00:33 +0000 (07:00 +0200)]
Restructure test code layout, import catch and use that.

9 years agoSimplify CMakeLists.txt - we always use malloc now.
Milian Wolff [Fri, 25 Sep 2015 04:27:22 +0000 (06:27 +0200)]
Simplify CMakeLists.txt - we always use malloc now.

9 years agoUse malloc within libbacktrace for the usecase of heaptrack.
Milian Wolff [Fri, 25 Sep 2015 04:16:32 +0000 (06:16 +0200)]
Use malloc within libbacktrace for the usecase of heaptrack.

This library is only being used from within the external interpret
process and never from a signal handler. Only there the mmap-approach
makes sense. Using malloc instead is significantly faster and makes
using heaptrack with clang++ and debug symbols usuable.

9 years agoCleanup and rename leaked in gui to consumed.
Milian Wolff [Tue, 22 Sep 2015 07:10:06 +0000 (09:10 +0200)]
Cleanup and rename leaked in gui to consumed.

9 years agoFix chart model by splitting it up by type.
Milian Wolff [Tue, 22 Sep 2015 06:56:50 +0000 (08:56 +0200)]
Fix chart model by splitting it up by type.

Since the number of columns can be different per type
we need separate models. This finally makes the stacked
charts work properly.

9 years agocleanup
Milian Wolff [Tue, 22 Sep 2015 02:22:08 +0000 (04:22 +0200)]
cleanup

9 years agoDeduplicate code
Milian Wolff [Mon, 21 Sep 2015 02:28:10 +0000 (04:28 +0200)]
Deduplicate code

9 years agoFormat tooltip cost and time.
Milian Wolff [Mon, 21 Sep 2015 02:17:48 +0000 (04:17 +0200)]
Format tooltip cost and time.

9 years agoKeep the chart data associated with a constant column.
Milian Wolff [Sat, 19 Sep 2015 06:47:21 +0000 (08:47 +0200)]
Keep the chart data associated with a constant column.

This is neccessary to have the association with a color and
later a legend label make sense.

What's left to be done now is adding some sorting on top to
have the most costly column at the bottom of the model.

9 years agoMerge entries for chart data and sort in descending order.
Milian Wolff [Sun, 13 Sep 2015 13:46:51 +0000 (15:46 +0200)]
Merge entries for chart data and sort in descending order.

9 years agoFix tooltips and show stacked graph.
Milian Wolff [Fri, 11 Sep 2015 18:18:51 +0000 (20:18 +0200)]
Fix tooltips and show stacked graph.

9 years agoUse correct axis and labels in time charts.
Milian Wolff [Thu, 10 Sep 2015 16:02:23 +0000 (18:02 +0200)]
Use correct axis and labels in time charts.

9 years agoAdd basic tooltip functionality for stacked time charts
Milian Wolff [Thu, 10 Sep 2015 15:33:39 +0000 (17:33 +0200)]
Add basic tooltip functionality for stacked time charts

9 years agostart with stacked time charts
Milian Wolff [Wed, 9 Sep 2015 18:41:56 +0000 (20:41 +0200)]
start with stacked time charts

9 years agoUse the TopDownData as input to generate the FlameGraph.
Milian Wolff [Sun, 6 Sep 2015 17:37:40 +0000 (19:37 +0200)]
Use the TopDownData as input to generate the FlameGraph.

9 years agoAdd Top-Down tree model.
Milian Wolff [Sun, 6 Sep 2015 17:26:27 +0000 (19:26 +0200)]
Add Top-Down tree model.

9 years agoAlso sum up peaks.
Milian Wolff [Sun, 6 Sep 2015 16:20:56 +0000 (18:20 +0200)]
Also sum up peaks.

The models have no temporal notation thus if two peaks happen
at a different time, you cannot say that this is the real
peak memory consumption of a merged allocation.

But taking the absolute peak of peaks is very confusing as
then the leaked number can be less than the peak.

9 years agoBuild tooltip ondemand which speeds initial parsing up tremendously.
Milian Wolff [Sun, 6 Sep 2015 16:02:10 +0000 (18:02 +0200)]
Build tooltip ondemand which speeds initial parsing up tremendously.

We save thousands of allocations this way. And the tooltip becomes more
expressive as well. This does remove the number of allocations from the graph
iteself though, but often it's not visible there anyways and the width already
represents the same data.

9 years agoDon't forget selection when resizing the flamegraph widget.
Milian Wolff [Sun, 6 Sep 2015 15:41:19 +0000 (17:41 +0200)]
Don't forget selection when resizing the flamegraph widget.

9 years agoCleanup the code and add some comments
Milian Wolff [Sun, 6 Sep 2015 15:37:42 +0000 (17:37 +0200)]
Cleanup the code and add some comments

9 years agoMerge branch 'flamegraph'
Milian Wolff [Sun, 6 Sep 2015 15:20:27 +0000 (17:20 +0200)]
Merge branch 'flamegraph'

9 years agoCleanup code
Milian Wolff [Fri, 4 Sep 2015 16:33:29 +0000 (18:33 +0200)]
Cleanup code

9 years agoImplement zooming as done in original FlameGraph SVG.
Milian Wolff [Fri, 4 Sep 2015 16:32:10 +0000 (18:32 +0200)]
Implement zooming as done in original FlameGraph SVG.

Maximize parent frames, hide all siblings of these parents and relayout
the children to the available parent width.

This is much better from a usability POV imo and has proven itself in
in the SVG implementation. The previous take of mine was simply too
confusing.

9 years agoUse mem color scheme from upstream FlameGraph.
Milian Wolff [Fri, 4 Sep 2015 15:43:17 +0000 (17:43 +0200)]
Use mem color scheme from upstream FlameGraph.

9 years agoAdd hover effect.
Milian Wolff [Fri, 4 Sep 2015 15:13:38 +0000 (17:13 +0200)]
Add hover effect.

9 years agoPaint selected item differently.
Milian Wolff [Fri, 4 Sep 2015 14:29:39 +0000 (16:29 +0200)]
Paint selected item differently.

9 years agoCleanup the code a bit, use font metrics height for item height.
Milian Wolff [Fri, 4 Sep 2015 14:17:57 +0000 (16:17 +0200)]
Cleanup the code a bit, use font metrics height for item height.

9 years agoDisable QGV BSP item indexing for the FlameGraph scene.
Milian Wolff [Fri, 4 Sep 2015 14:13:48 +0000 (16:13 +0200)]
Disable QGV BSP item indexing for the FlameGraph scene.

The data changes frequently and this would be slow when we use the BSP.

9 years agoAdapt the minRootWidth to the available viewport width
Milian Wolff [Fri, 4 Sep 2015 14:10:08 +0000 (16:10 +0200)]
Adapt the minRootWidth to the available viewport width

9 years agoCleanup code and build graphics items in the background thread.
Milian Wolff [Fri, 4 Sep 2015 13:37:14 +0000 (15:37 +0200)]
Cleanup code and build graphics items in the background thread.

This prevents ~1s of GUI freezes on common data files.

9 years agoCMake: set_package_properties for KChart
Kevin Funk [Thu, 3 Sep 2015 09:59:56 +0000 (11:59 +0200)]
CMake: set_package_properties for KChart

9 years agoBring back mouse wheel zooming.
Milian Wolff [Wed, 2 Sep 2015 15:09:36 +0000 (17:09 +0200)]
Bring back mouse wheel zooming.

Works fine when removing the ItemIgnoresTransformations flag,
which apparently isn't required after all.

9 years agoImplement click-to-zoom in FlameGraph
Milian Wolff [Wed, 2 Sep 2015 15:04:13 +0000 (17:04 +0200)]
Implement click-to-zoom in FlameGraph

9 years agoRefactor code and use QGV parent child chain while ignoring transformations.
Milian Wolff [Wed, 2 Sep 2015 14:06:46 +0000 (16:06 +0200)]
Refactor code and use QGV parent child chain while ignoring transformations.

First steps towards custom zooming operation.

9 years agoSet pen externally, add total item
Milian Wolff [Wed, 2 Sep 2015 13:53:49 +0000 (15:53 +0200)]
Set pen externally, add total item

9 years agoExclude stop indices from GUI backtraces.
Milian Wolff [Wed, 2 Sep 2015 13:52:27 +0000 (15:52 +0200)]
Exclude stop indices from GUI backtraces.

9 years agoUse correct foreground color.
Milian Wolff [Wed, 2 Sep 2015 09:45:20 +0000 (11:45 +0200)]
Use correct foreground color.

9 years agoKeep font size stable.
Milian Wolff [Tue, 1 Sep 2015 22:40:13 +0000 (00:40 +0200)]
Keep font size stable.

9 years agoImprove layouting and data generation for flame graph.
Milian Wolff [Tue, 1 Sep 2015 22:17:18 +0000 (00:17 +0200)]
Improve layouting and data generation for flame graph.

Don't count non-leaf node's cost multiple times and take the
parent cost into account when calculating the width of frame
graphics items.

9 years agoBuild a top-down flame graph.
Milian Wolff [Tue, 1 Sep 2015 21:39:19 +0000 (23:39 +0200)]
Build a top-down flame graph.

The layouting is still wrong, but this gives us the data at least.

9 years agoMerge remote-tracking branch 'origin/master' into flamegraph
Milian Wolff [Tue, 1 Sep 2015 20:37:09 +0000 (22:37 +0200)]
Merge remote-tracking branch 'origin/master' into flamegraph

9 years agodo not mix up peak and allocated columns
Milian Wolff [Mon, 24 Aug 2015 12:52:55 +0000 (14:52 +0200)]
do not mix up peak and allocated columns

9 years agoAdd QDebug include, for potential printf debugging needs.
Milian Wolff [Mon, 24 Aug 2015 12:52:37 +0000 (14:52 +0200)]
Add QDebug include, for potential printf debugging needs.

9 years agoAdd initial take on a FlameGraph based on QGraphicsView.
Milian Wolff [Fri, 21 Aug 2015 21:49:20 +0000 (23:49 +0200)]
Add initial take on a FlameGraph based on QGraphicsView.

Many issues still, mostly due to bad scaling, i.e. we'd want
constant text size (elided if parent item is too small), and constant
item height based on text height.

9 years agoRemove warning about bogus translation.
Milian Wolff [Fri, 21 Aug 2015 20:59:26 +0000 (22:59 +0200)]
Remove warning about bogus translation.

9 years agoMake it possible to create flamegraph compatible stack files.
Milian Wolff [Thu, 20 Aug 2015 21:09:30 +0000 (23:09 +0200)]
Make it possible to create flamegraph compatible stack files.

heaptrack_print gained the following new feature:

 -F [ --print-flamegraph ] arg
Path to output file where a flame-graph compatible stack file will
be written to.
To visualize the resulting file, use flamegraph.pl from
https://github.com/brendangregg/FlameGraph:
    heaptrack_print heaptrack.someapp.PID.gz -F stacks.txt
    # optionally pass --reverse to flamegraph.pl
    flamegraph.pl --title "heaptrack: allocations" --colors mem \
      --countname allocations < stacks.txt > heaptrack.someapp.PID.svg
    [firefox|chromium] heaptrack.someapp.PID.svg

9 years agoIncrease width of help output
Milian Wolff [Thu, 20 Aug 2015 20:49:20 +0000 (22:49 +0200)]
Increase width of help output

9 years agoSave memory by keeping file strings shared.
Milian Wolff [Mon, 10 Aug 2015 16:28:54 +0000 (18:28 +0200)]
Save memory by keeping file strings shared.

Before, we detached when we concatenated the string number, leading
to excessive memory consumption in large data files.

9 years agoFix compile of test when unwind.h is in non-standard path.
Milian Wolff [Mon, 10 Aug 2015 08:51:48 +0000 (10:51 +0200)]
Fix compile of test when unwind.h is in non-standard path.

9 years agoFix serious regression which broke evaluation of back traces.
Milian Wolff [Thu, 23 Jul 2015 14:50:49 +0000 (16:50 +0200)]
Fix serious regression which broke evaluation of back traces.

The data format expects hexadecimal numbers, thus output one.
Regression was introduced when I hacked in the 32bit support.

9 years agoAdd first test to verify libunwind integration behaves sane.
Milian Wolff [Thu, 23 Jul 2015 14:30:30 +0000 (16:30 +0200)]
Add first test to verify libunwind integration behaves sane.

Turns out that you must not build libunwind with the gold linker,
it completely breaks the stack unwinding functionality for me.

TODO: use a proper testing framework here.

9 years agoDon't show an error when heaptrack_gui is not in PATH.
Milian Wolff [Tue, 21 Jul 2015 12:01:00 +0000 (14:01 +0200)]
Don't show an error when heaptrack_gui is not in PATH.

9 years agoMake GUI/Chart optional.
Milian Wolff [Tue, 21 Jul 2015 11:58:21 +0000 (13:58 +0200)]
Make GUI/Chart optional.

9 years agoFix 'obvious' error on 32bit for injection, still doesn't work properly.
Milian Wolff [Wed, 8 Jul 2015 16:14:06 +0000 (18:14 +0200)]
Fix 'obvious' error on 32bit for injection, still doesn't work properly.

9 years agoAlso fix building of the gui on 32bit
Milian Wolff [Wed, 8 Jul 2015 16:13:49 +0000 (18:13 +0200)]
Also fix building of the gui on 32bit

9 years agoAlways assume 64bit input data in the printer.
Milian Wolff [Wed, 8 Jul 2015 15:47:07 +0000 (17:47 +0200)]
Always assume 64bit input data in the printer.

Otherwise, we cannot print 64bit records on 32bit machines.