[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1476356383-30100-6-git-send-email-eranian@google.com>
Date: Thu, 13 Oct 2016 03:59:39 -0700
From: Stephane Eranian <eranian@...gle.com>
To: linux-kernel@...r.kernel.org
Cc: acme@...nel.org, jolsa@...hat.com, peterz@...radead.org,
mingo@...e.hu, anton@...abs.org, namhyung@...nel.org,
Stefano Sanfilippo <ssanfilippo@...omium.org>,
Ross McIlroy <rmcilroy@...omium.org>
Subject: [PATCH 5/9] perf/jit: do not assume pgoff is zero
From: Stefano Sanfilippo <ssanfilippo@...omium.org>
When calculating .eh_frame_hdr base and LUT offsets do not
always assume that pgoff is zero.
The assumption is false for DSOs built from the jitdump by
perf inject, because the ELF header did not exist in memory at
sampling time.
Signed-off-by: Stefano Sanfilippo <ssanfilippo@...omium.org>
Signed-off-by: Ross McIlroy <rmcilroy@...omium.org>
Reviewed-by: Stephane Eranian <eranian@...gle.com>
---
tools/perf/util/unwind-libunwind-local.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/tools/perf/util/unwind-libunwind-local.c b/tools/perf/util/unwind-libunwind-local.c
index 20c2e5743903..6fec84dff3f7 100644
--- a/tools/perf/util/unwind-libunwind-local.c
+++ b/tools/perf/util/unwind-libunwind-local.c
@@ -357,8 +357,8 @@ find_proc_info(unw_addr_space_t as, unw_word_t ip, unw_proc_info_t *pi,
di.format = UNW_INFO_FORMAT_REMOTE_TABLE;
di.start_ip = map->start;
di.end_ip = map->end;
- di.u.rti.segbase = map->start + segbase;
- di.u.rti.table_data = map->start + table_data;
+ di.u.rti.segbase = map->start + segbase - map->pgoff;
+ di.u.rti.table_data = map->start + table_data - map->pgoff;
di.u.rti.table_len = fde_count * sizeof(struct table_entry)
/ sizeof(unw_word_t);
ret = dwarf_search_unwind_table(as, ip, &di, pi,
--
1.9.1
Powered by blists - more mailing lists