summaryrefslogtreecommitdiffstats
path: root/tools/perf/util/unwind-libdw.h
diff options
context:
space:
mode:
authorJiri Olsa <jolsa@redhat.com>2014-02-19 16:52:57 +0100
committerArnaldo Carvalho de Melo <acme@redhat.com>2014-02-24 09:29:36 -0300
commit5ea8415407a76c4a85ac971ec82d110161cd77f1 (patch)
treeb9fc3f0b4c9b37d8a35407d953a06910b1c79d56 /tools/perf/util/unwind-libdw.h
parent45757895c785e0a4c10afd5670cdc26cea2bbc97 (diff)
downloadlinux-5ea8415407a76c4a85ac971ec82d110161cd77f1.tar.gz
linux-5ea8415407a76c4a85ac971ec82d110161cd77f1.tar.bz2
linux-5ea8415407a76c4a85ac971ec82d110161cd77f1.zip
perf tools: Add libdw DWARF post unwind support
Adding libdw DWARF post unwind support, which is part of elfutils-devel/libdw-dev package from version 0.158. The new code is contained in unwin-libdw.c object, and implements unwind__get_entries unwind interface function. New Makefile variable NO_LIBDW_DWARF_UNWIND was added to control its compilation, and is marked as disabled now. It's factored with the rest of the Makefile unwind build code in the next patch. Arch specific code was added for x86. Signed-off-by: Jiri Olsa <jolsa@redhat.com> Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com> Cc: David Ahern <dsahern@gmail.com> Cc: Frederic Weisbecker <fweisbec@gmail.com> Cc: Ingo Molnar <mingo@kernel.org> Cc: Jean Pihet <jean.pihet@linaro.org> Cc: Namhyung Kim <namhyung@kernel.org> Cc: Paul Mackerras <paulus@samba.org> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Link: http://lkml.kernel.org/r/1392825179-5228-5-git-send-email-jolsa@redhat.com Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/util/unwind-libdw.h')
-rw-r--r--tools/perf/util/unwind-libdw.h21
1 files changed, 21 insertions, 0 deletions
diff --git a/tools/perf/util/unwind-libdw.h b/tools/perf/util/unwind-libdw.h
new file mode 100644
index 000000000000..417a1426f3ad
--- /dev/null
+++ b/tools/perf/util/unwind-libdw.h
@@ -0,0 +1,21 @@
+#ifndef __PERF_UNWIND_LIBDW_H
+#define __PERF_UNWIND_LIBDW_H
+
+#include <elfutils/libdwfl.h>
+#include "event.h"
+#include "thread.h"
+#include "unwind.h"
+
+bool libdw__arch_set_initial_registers(Dwfl_Thread *thread, void *arg);
+
+struct unwind_info {
+ Dwfl *dwfl;
+ struct perf_sample *sample;
+ struct machine *machine;
+ struct thread *thread;
+ unwind_entry_cb_t cb;
+ void *arg;
+ int max_stack;
+};
+
+#endif /* __PERF_UNWIND_LIBDW_H */