perf callchains: Store the map together with the symbol
We need this to know where a symbol in a callchain came from, for various reasons, among them precise annotation from a TUI/GUI tool. Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com> Cc: Frédéric Weisbecker <fweisbec@gmail.com> Cc: Mike Galbraith <efault@gmx.de> Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> Cc: Paul Mackerras <paulus@samba.org> LKML-Reference: <1269459619-982-5-git-send-email-acme@infradead.org> Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
committed by
Ingo Molnar
parent
59fd53062f
commit
b3c9ac0846
@@ -260,8 +260,8 @@ static size_t ipchain__fprintf_graph(FILE *fp, struct callchain_list *chain,
|
||||
} else
|
||||
ret += fprintf(fp, "%s", " ");
|
||||
}
|
||||
if (chain->sym)
|
||||
ret += fprintf(fp, "%s\n", chain->sym->name);
|
||||
if (chain->ms.sym)
|
||||
ret += fprintf(fp, "%s\n", chain->ms.sym->name);
|
||||
else
|
||||
ret += fprintf(fp, "%p\n", (void *)(long)chain->ip);
|
||||
|
||||
@@ -280,7 +280,7 @@ static void init_rem_hits(void)
|
||||
}
|
||||
|
||||
strcpy(rem_sq_bracket->name, "[...]");
|
||||
rem_hits.sym = rem_sq_bracket;
|
||||
rem_hits.ms.sym = rem_sq_bracket;
|
||||
}
|
||||
|
||||
static size_t __callchain__fprintf_graph(FILE *fp, struct callchain_node *self,
|
||||
@@ -382,8 +382,8 @@ static size_t callchain__fprintf_graph(FILE *fp, struct callchain_node *self,
|
||||
} else
|
||||
ret += callchain__fprintf_left_margin(fp, left_margin);
|
||||
|
||||
if (chain->sym)
|
||||
ret += fprintf(fp, " %s\n", chain->sym->name);
|
||||
if (chain->ms.sym)
|
||||
ret += fprintf(fp, " %s\n", chain->ms.sym->name);
|
||||
else
|
||||
ret += fprintf(fp, " %p\n", (void *)(long)chain->ip);
|
||||
}
|
||||
@@ -408,8 +408,8 @@ static size_t callchain__fprintf_flat(FILE *fp, struct callchain_node *self,
|
||||
list_for_each_entry(chain, &self->val, list) {
|
||||
if (chain->ip >= PERF_CONTEXT_MAX)
|
||||
continue;
|
||||
if (chain->sym)
|
||||
ret += fprintf(fp, " %s\n", chain->sym->name);
|
||||
if (chain->ms.sym)
|
||||
ret += fprintf(fp, " %s\n", chain->ms.sym->name);
|
||||
else
|
||||
ret += fprintf(fp, " %p\n",
|
||||
(void *)(long)chain->ip);
|
||||
|
Reference in New Issue
Block a user