diff options
author | Arnaldo Carvalho de Melo <acme@redhat.com> | 2018-03-15 22:54:11 +0300 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2018-03-20 19:19:30 +0300 |
commit | ecda45bd6cfe0badda0e8215c5a008eaf7647716 (patch) | |
tree | bb05411b2b6a4d048f28015394a81ecdd2cb42c4 /tools/perf/ui | |
parent | b8b0d819858e1140e98ce858a0c839f3d03cb0f5 (diff) | |
download | linux-ecda45bd6cfe0badda0e8215c5a008eaf7647716.tar.xz |
perf annotate: Introduce symbol__annotate2 method
That does all the extended boilerplate the TUI browser did, leaving the
symbol__annotate() function to be used by the old --stdio output mode.
Now the upcoming --stdio2 output mode should just use this one to set
things up.
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Jin Yao <yao.jin@linux.intel.com>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: https://lkml.kernel.org/n/tip-e2x8wuf6gvdhzdryo229vj4i@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/ui')
-rw-r--r-- | tools/perf/ui/browsers/annotate.c | 28 |
1 files changed, 1 insertions, 27 deletions
diff --git a/tools/perf/ui/browsers/annotate.c b/tools/perf/ui/browsers/annotate.c index 06ad5ecaa67a..ab21739f27ae 100644 --- a/tools/perf/ui/browsers/annotate.c +++ b/tools/perf/ui/browsers/annotate.c @@ -910,7 +910,6 @@ int symbol__tui_annotate(struct symbol *sym, struct map *map, struct hist_browser_timer *hbt) { struct annotation *notes = symbol__annotation(sym); - size_t size; struct map_symbol ms = { .map = map, .sym = sym, @@ -926,28 +925,14 @@ int symbol__tui_annotate(struct symbol *sym, struct map *map, }, }; int ret = -1, err; - int nr_pcnt = 1; if (sym == NULL) return -1; - size = symbol__size(sym); - if (map->dso->annotate_warned) return -1; - notes->options = &annotate_browser__opts; - - notes->offsets = zalloc(size * sizeof(struct annotation_line *)); - if (notes->offsets == NULL) { - ui__error("Not enough memory!"); - return -1; - } - - if (perf_evsel__is_group_event(evsel)) - nr_pcnt = evsel->nr_members; - - err = symbol__annotate(sym, map, evsel, 0, &browser.arch); + err = symbol__annotate2(sym, map, evsel, &annotate_browser__opts, &browser.arch); if (err) { char msg[BUFSIZ]; symbol__strerror_disassemble(sym, map, err, msg, sizeof(msg)); @@ -955,18 +940,9 @@ int symbol__tui_annotate(struct symbol *sym, struct map *map, goto out_free_offsets; } - symbol__calc_percent(sym, evsel); - ui_helpline__push("Press ESC to exit"); - notes->start = map__rip_2objdump(map, sym->start); - - annotation__set_offsets(notes, size); browser.b.width = notes->max_line_len; - annotation__mark_jump_targets(notes, sym); - annotation__compute_ipc(notes, size); - annotation__init_column_widths(notes, sym); - notes->nr_events = nr_pcnt; browser.b.nr_entries = notes->nr_entries; browser.b.entries = ¬es->src->source, browser.b.width += 18; /* Percentage */ @@ -974,8 +950,6 @@ int symbol__tui_annotate(struct symbol *sym, struct map *map, if (notes->options->hide_src_code) ui_browser__init_asm_mode(&browser.b); - annotation__update_column_widths(notes); - ret = annotate_browser__run(&browser, evsel, hbt); annotated_source__purge(notes->src); |