aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMasami Hiramatsu <mhiramat@redhat.com>2010-03-15 13:02:28 -0400
committerIngo Molnar <mingo@elte.hu>2010-03-16 05:02:18 -0400
commit67c7ff7c56f38a8ab338fbbfe366621ce6303ba1 (patch)
tree4b7467f95af1eb98a850ce1717bebc9a2e6a465c
parentb63be8d7beda7fe5879559be6f70f8e1c93109e4 (diff)
perf probe: Fix offset to allow signed value
Fix dereference offset to intmax_t from uintmax_t, because it can have negative values (for example local variable's offset from frame pointer). Signed-off-by: Masami Hiramatsu <mhiramat@redhat.com> Cc: systemtap <systemtap@sources.redhat.com> Cc: DLE <dle-develop@lists.sourceforge.net> LKML-Reference: <20100315170228.31852.71946.stgit@localhost6.localdomain6> Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r--tools/perf/util/probe-finder.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/tools/perf/util/probe-finder.c b/tools/perf/util/probe-finder.c
index f9cbbf18e6ca..0e8c8f1594ec 100644
--- a/tools/perf/util/probe-finder.c
+++ b/tools/perf/util/probe-finder.c
@@ -333,8 +333,8 @@ static void show_location(Dwarf_Op *op, struct probe_finder *pf)
333 die("%u exceeds max register number.", regn); 333 die("%u exceeds max register number.", regn);
334 334
335 if (deref) 335 if (deref)
336 ret = snprintf(pf->buf, pf->len, " %s=+%ju(%s)", 336 ret = snprintf(pf->buf, pf->len, " %s=%+jd(%s)",
337 pf->var, (uintmax_t)offs, regs); 337 pf->var, (intmax_t)offs, regs);
338 else 338 else
339 ret = snprintf(pf->buf, pf->len, " %s=%s", pf->var, regs); 339 ret = snprintf(pf->buf, pf->len, " %s=%s", pf->var, regs);
340 DIE_IF(ret < 0); 340 DIE_IF(ret < 0);