diff options
Diffstat (limited to 'tools/perf/ui/gtk/annotate.c')
-rw-r--r-- | tools/perf/ui/gtk/annotate.c | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/tools/perf/ui/gtk/annotate.c b/tools/perf/ui/gtk/annotate.c index fc7a2e105bfd..aeeaf15029f0 100644 --- a/tools/perf/ui/gtk/annotate.c +++ b/tools/perf/ui/gtk/annotate.c | |||
@@ -31,14 +31,14 @@ static int perf_gtk__get_percent(char *buf, size_t size, struct symbol *sym, | |||
31 | 31 | ||
32 | strcpy(buf, ""); | 32 | strcpy(buf, ""); |
33 | 33 | ||
34 | if (dl->offset == (s64) -1) | 34 | if (dl->al.offset == (s64) -1) |
35 | return 0; | 35 | return 0; |
36 | 36 | ||
37 | symhist = annotation__histogram(symbol__annotation(sym), evidx); | 37 | symhist = annotation__histogram(symbol__annotation(sym), evidx); |
38 | if (!symbol_conf.event_group && !symhist->addr[dl->offset].nr_samples) | 38 | if (!symbol_conf.event_group && !symhist->addr[dl->al.offset].nr_samples) |
39 | return 0; | 39 | return 0; |
40 | 40 | ||
41 | percent = 100.0 * symhist->addr[dl->offset].nr_samples / symhist->nr_samples; | 41 | percent = 100.0 * symhist->addr[dl->al.offset].nr_samples / symhist->nr_samples; |
42 | 42 | ||
43 | markup = perf_gtk__get_percent_color(percent); | 43 | markup = perf_gtk__get_percent_color(percent); |
44 | if (markup) | 44 | if (markup) |
@@ -57,16 +57,16 @@ static int perf_gtk__get_offset(char *buf, size_t size, struct symbol *sym, | |||
57 | 57 | ||
58 | strcpy(buf, ""); | 58 | strcpy(buf, ""); |
59 | 59 | ||
60 | if (dl->offset == (s64) -1) | 60 | if (dl->al.offset == (s64) -1) |
61 | return 0; | 61 | return 0; |
62 | 62 | ||
63 | return scnprintf(buf, size, "%"PRIx64, start + dl->offset); | 63 | return scnprintf(buf, size, "%"PRIx64, start + dl->al.offset); |
64 | } | 64 | } |
65 | 65 | ||
66 | static int perf_gtk__get_line(char *buf, size_t size, struct disasm_line *dl) | 66 | static int perf_gtk__get_line(char *buf, size_t size, struct disasm_line *dl) |
67 | { | 67 | { |
68 | int ret = 0; | 68 | int ret = 0; |
69 | char *line = g_markup_escape_text(dl->line, -1); | 69 | char *line = g_markup_escape_text(dl->al.line, -1); |
70 | const char *markup = "<span fgcolor='gray'>"; | 70 | const char *markup = "<span fgcolor='gray'>"; |
71 | 71 | ||
72 | strcpy(buf, ""); | 72 | strcpy(buf, ""); |
@@ -74,7 +74,7 @@ static int perf_gtk__get_line(char *buf, size_t size, struct disasm_line *dl) | |||
74 | if (!line) | 74 | if (!line) |
75 | return 0; | 75 | return 0; |
76 | 76 | ||
77 | if (dl->offset != (s64) -1) | 77 | if (dl->al.offset != (s64) -1) |
78 | markup = NULL; | 78 | markup = NULL; |
79 | 79 | ||
80 | if (markup) | 80 | if (markup) |
@@ -119,7 +119,7 @@ static int perf_gtk__annotate_symbol(GtkWidget *window, struct symbol *sym, | |||
119 | gtk_tree_view_set_model(GTK_TREE_VIEW(view), GTK_TREE_MODEL(store)); | 119 | gtk_tree_view_set_model(GTK_TREE_VIEW(view), GTK_TREE_MODEL(store)); |
120 | g_object_unref(GTK_TREE_MODEL(store)); | 120 | g_object_unref(GTK_TREE_MODEL(store)); |
121 | 121 | ||
122 | list_for_each_entry(pos, ¬es->src->source, node) { | 122 | list_for_each_entry(pos, ¬es->src->source, al.node) { |
123 | GtkTreeIter iter; | 123 | GtkTreeIter iter; |
124 | int ret = 0; | 124 | int ret = 0; |
125 | 125 | ||
@@ -148,8 +148,8 @@ static int perf_gtk__annotate_symbol(GtkWidget *window, struct symbol *sym, | |||
148 | 148 | ||
149 | gtk_container_add(GTK_CONTAINER(window), view); | 149 | gtk_container_add(GTK_CONTAINER(window), view); |
150 | 150 | ||
151 | list_for_each_entry_safe(pos, n, ¬es->src->source, node) { | 151 | list_for_each_entry_safe(pos, n, ¬es->src->source, al.node) { |
152 | list_del(&pos->node); | 152 | list_del(&pos->al.node); |
153 | disasm_line__free(pos); | 153 | disasm_line__free(pos); |
154 | } | 154 | } |
155 | 155 | ||
@@ -169,8 +169,7 @@ static int symbol__gtk_annotate(struct symbol *sym, struct map *map, | |||
169 | if (map->dso->annotate_warned) | 169 | if (map->dso->annotate_warned) |
170 | return -1; | 170 | return -1; |
171 | 171 | ||
172 | err = symbol__disassemble(sym, map, perf_evsel__env_arch(evsel), | 172 | err = symbol__annotate(sym, map, evsel, 0, NULL); |
173 | 0, NULL, NULL); | ||
174 | if (err) { | 173 | if (err) { |
175 | char msg[BUFSIZ]; | 174 | char msg[BUFSIZ]; |
176 | symbol__strerror_disassemble(sym, map, err, msg, sizeof(msg)); | 175 | symbol__strerror_disassemble(sym, map, err, msg, sizeof(msg)); |
@@ -178,6 +177,8 @@ static int symbol__gtk_annotate(struct symbol *sym, struct map *map, | |||
178 | return -1; | 177 | return -1; |
179 | } | 178 | } |
180 | 179 | ||
180 | symbol__calc_percent(sym, evsel); | ||
181 | |||
181 | if (perf_gtk__is_active_context(pgctx)) { | 182 | if (perf_gtk__is_active_context(pgctx)) { |
182 | window = pgctx->main_window; | 183 | window = pgctx->main_window; |
183 | notebook = pgctx->notebook; | 184 | notebook = pgctx->notebook; |