perf annotate: Show invalid jump offset in error message
authorArnaldo Carvalho de Melo <acme@redhat.com>
Fri, 25 Nov 2016 18:56:34 +0000 (15:56 -0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Fri, 25 Nov 2016 18:56:34 +0000 (15:56 -0300)
To help in debugging when the wrong offset is being used, like in:

       │13d98: ↓ jne    13dd1 <lzma_lzma_preset@@XZ_5.0+0x28e1>

That is the full line from objdump, and it seems what should be used is
13dd1, not 28e1.

Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/n/tip-4nc0marsgst1ft6inmvqber7@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/ui/browsers/annotate.c

index cee0eee31ce6de28c2559a0f17b860a2a083cad3..ec7a30fad14918bcdf8f01b6c90970da8f43a676 100644 (file)
@@ -543,14 +543,16 @@ struct disasm_line *annotate_browser__find_offset(struct annotate_browser *brows
 static bool annotate_browser__jump(struct annotate_browser *browser)
 {
        struct disasm_line *dl = browser->selection;
+       u64 offset;
        s64 idx;
 
        if (!ins__is_jump(&dl->ins))
                return false;
 
-       dl = annotate_browser__find_offset(browser, dl->ops.target.offset, &idx);
+       offset = dl->ops.target.offset;
+       dl = annotate_browser__find_offset(browser, offset, &idx);
        if (dl == NULL) {
-               ui_helpline__puts("Invalid jump offset");
+               ui_helpline__printf("Invalid jump offset: %" PRIx64, offset);
                return true;
        }