Skip to contentSkip to conversation

perf annotate: Show invalid jump offset in error message

tip:perf/core tip-bot for Arnaldo Carvalho de Melo 1 participant 1 message Dec 2, 2016 perf events

lore
Share & tools
lore
#0 lore raw
Commit-ID:  5252b1aeabd0ae794cfaf323c10968443f10a363
Gitweb:     http://git.kernel.org/tip/5252b1aeabd0ae794cfaf323c10968443f10a363
Author:     Arnaldo Carvalho de Melo <[email protected]>
AuthorDate: Fri, 25 Nov 2016 15:56:34 -0300
Committer:  Arnaldo Carvalho de Melo <[email protected]>
CommitDate: Fri, 25 Nov 2016 15:56:34 -0300

perf annotate: Show invalid jump offset in error message

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.

---
 tools/perf/ui/browsers/annotate.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
tools/perf/ui/browsers/annotate.c +4 -2
index cee0eee..ec7a30f 100644
@@ -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;
 	}