|
@@ -1985,8 +1985,8 @@ static int annotated_source__addr_fmt_width(struct list_head *lines, u64 start)
|
|
|
}
|
|
|
|
|
|
int symbol__annotate_printf(struct symbol *sym, struct map *map,
|
|
|
- struct perf_evsel *evsel, bool full_paths,
|
|
|
- int min_pcnt, int max_lines, int context)
|
|
|
+ struct perf_evsel *evsel,
|
|
|
+ struct annotation_options *opts)
|
|
|
{
|
|
|
struct dso *dso = map->dso;
|
|
|
char *filename;
|
|
@@ -1998,6 +1998,7 @@ int symbol__annotate_printf(struct symbol *sym, struct map *map,
|
|
|
u64 start = map__rip_2objdump(map, sym->start);
|
|
|
int printed = 2, queue_len = 0, addr_fmt_width;
|
|
|
int more = 0;
|
|
|
+ bool context = opts->context;
|
|
|
u64 len;
|
|
|
int width = symbol_conf.show_total_period ? 12 : 8;
|
|
|
int graph_dotted_len;
|
|
@@ -2007,7 +2008,7 @@ int symbol__annotate_printf(struct symbol *sym, struct map *map,
|
|
|
if (!filename)
|
|
|
return -ENOMEM;
|
|
|
|
|
|
- if (full_paths)
|
|
|
+ if (opts->full_path)
|
|
|
d_filename = filename;
|
|
|
else
|
|
|
d_filename = basename(filename);
|
|
@@ -2042,7 +2043,7 @@ int symbol__annotate_printf(struct symbol *sym, struct map *map,
|
|
|
}
|
|
|
|
|
|
err = annotation_line__print(pos, sym, start, evsel, len,
|
|
|
- min_pcnt, printed, max_lines,
|
|
|
+ opts->min_pcnt, printed, opts->max_lines,
|
|
|
queue, addr_fmt_width);
|
|
|
|
|
|
switch (err) {
|
|
@@ -2375,20 +2376,19 @@ static void symbol__calc_lines(struct symbol *sym, struct map *map,
|
|
|
}
|
|
|
|
|
|
int symbol__tty_annotate2(struct symbol *sym, struct map *map,
|
|
|
- struct perf_evsel *evsel, bool print_lines,
|
|
|
- bool full_paths)
|
|
|
+ struct perf_evsel *evsel,
|
|
|
+ struct annotation_options *opts)
|
|
|
{
|
|
|
struct dso *dso = map->dso;
|
|
|
struct rb_root source_line = RB_ROOT;
|
|
|
- struct annotation_options opts = annotation__default_options;
|
|
|
struct annotation *notes = symbol__annotation(sym);
|
|
|
char buf[1024];
|
|
|
|
|
|
- if (symbol__annotate2(sym, map, evsel, &opts, NULL) < 0)
|
|
|
+ if (symbol__annotate2(sym, map, evsel, opts, NULL) < 0)
|
|
|
return -1;
|
|
|
|
|
|
- if (print_lines) {
|
|
|
- srcline_full_filename = full_paths;
|
|
|
+ if (opts->print_lines) {
|
|
|
+ srcline_full_filename = opts->full_path;
|
|
|
symbol__calc_lines(sym, map, &source_line);
|
|
|
print_summary(&source_line, dso->long_name);
|
|
|
}
|
|
@@ -2403,8 +2403,8 @@ int symbol__tty_annotate2(struct symbol *sym, struct map *map,
|
|
|
}
|
|
|
|
|
|
int symbol__tty_annotate(struct symbol *sym, struct map *map,
|
|
|
- struct perf_evsel *evsel, bool print_lines,
|
|
|
- bool full_paths, int min_pcnt, int max_lines)
|
|
|
+ struct perf_evsel *evsel,
|
|
|
+ struct annotation_options *opts)
|
|
|
{
|
|
|
struct dso *dso = map->dso;
|
|
|
struct rb_root source_line = RB_ROOT;
|
|
@@ -2414,14 +2414,13 @@ int symbol__tty_annotate(struct symbol *sym, struct map *map,
|
|
|
|
|
|
symbol__calc_percent(sym, evsel);
|
|
|
|
|
|
- if (print_lines) {
|
|
|
- srcline_full_filename = full_paths;
|
|
|
+ if (opts->print_lines) {
|
|
|
+ srcline_full_filename = opts->full_path;
|
|
|
symbol__calc_lines(sym, map, &source_line);
|
|
|
print_summary(&source_line, dso->long_name);
|
|
|
}
|
|
|
|
|
|
- symbol__annotate_printf(sym, map, evsel, full_paths,
|
|
|
- min_pcnt, max_lines, 0);
|
|
|
+ symbol__annotate_printf(sym, map, evsel, opts);
|
|
|
|
|
|
annotated_source__purge(symbol__annotation(sym)->src);
|
|
|
|