From b6edcaad0d66c61057ad1dc8ad2651378b74b7a0 Mon Sep 17 00:00:00 2001 From: Arnaldo Carvalho de Melo Date: Mon, 2 Apr 2012 13:21:55 -0300 Subject: [PATCH] --- yaml --- r: 304807 b: refs/heads/master c: e235f3f3bf238eb092ad2fe7c35c6d7fd5dc2aeb h: refs/heads/master i: 304805: d16d163defb6ca754fc3f365d17d05329fd11b99 304803: 4979e0a8c564bfac2d8eba2afa470a727cb897d6 304799: 991e46ad8c20b3b78f1fa33387374b2a993dbcec v: v3 --- [refs] | 2 +- trunk/tools/perf/util/ui/browsers/annotate.c | 15 ++++++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index 4ef544a45aa5..fa924fa87a73 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 058b4cc9af574c072988a38a7a5ee93df881e5aa +refs/heads/master: e235f3f3bf238eb092ad2fe7c35c6d7fd5dc2aeb diff --git a/trunk/tools/perf/util/ui/browsers/annotate.c b/trunk/tools/perf/util/ui/browsers/annotate.c index 7ac7dd04d5c6..5cf9b78682aa 100644 --- a/trunk/tools/perf/util/ui/browsers/annotate.c +++ b/trunk/tools/perf/util/ui/browsers/annotate.c @@ -20,6 +20,7 @@ struct annotate_browser { int nr_asm_entries; int nr_entries; bool hide_src_code; + bool use_offset; }; struct objdump_line_rb_node { @@ -82,10 +83,13 @@ static void annotate_browser__write(struct ui_browser *self, void *entry, int ro slsmg_write_nstring(ol->line, width - 18); else { char bf[64]; - u64 addr = ab->start + ol->offset; - int printed = scnprintf(bf, sizeof(bf), " %" PRIx64 ":", addr); - int color = -1; + u64 addr = ol->offset; + int printed, color = -1; + if (!ab->use_offset) + addr += ab->start; + + printed = scnprintf(bf, sizeof(bf), " %" PRIx64 ":", addr); if (change_color) color = ui_browser__set_color(self, HE_COLORSET_ADDR); slsmg_write_nstring(bf, printed); @@ -250,6 +254,7 @@ static int annotate_browser__run(struct annotate_browser *self, int evidx, struct symbol *sym = ms->sym; const char *help = "<-/ESC: Exit, TAB/shift+TAB: Cycle hot lines, " "H: Go to hottest line, ->/ENTER: Line action, " + "O: Toggle offset view, " "S: Toggle source code view"; int key; @@ -310,6 +315,10 @@ static int annotate_browser__run(struct annotate_browser *self, int evidx, if (annotate_browser__toggle_source(self)) ui_helpline__puts(help); continue; + case 'O': + case 'o': + self->use_offset = !self->use_offset; + continue; case K_ENTER: case K_RIGHT: if (self->selection == NULL) {