diff options
Diffstat (limited to 'tools/perf/ui/stdio/hist.c')
| -rw-r--r-- | tools/perf/ui/stdio/hist.c | 23 | 
1 files changed, 9 insertions, 14 deletions
diff --git a/tools/perf/ui/stdio/hist.c b/tools/perf/ui/stdio/hist.c index 15b451acbde6..dfcbc90146ef 100644 --- a/tools/perf/ui/stdio/hist.c +++ b/tools/perf/ui/stdio/hist.c @@ -41,6 +41,7 @@ static size_t ipchain__fprintf_graph(FILE *fp, struct callchain_list *chain,  {  	int i;  	size_t ret = 0; +	char bf[1024];  	ret += callchain__fprintf_left_margin(fp, left_margin);  	for (i = 0; i < depth; i++) { @@ -56,11 +57,8 @@ static size_t ipchain__fprintf_graph(FILE *fp, struct callchain_list *chain,  		} else  			ret += fprintf(fp, "%s", "          ");  	} -	if (chain->ms.sym) -		ret += fprintf(fp, "%s\n", chain->ms.sym->name); -	else -		ret += fprintf(fp, "0x%0" PRIx64 "\n", chain->ip); - +	fputs(callchain_list__sym_name(chain, bf, sizeof(bf), false), fp); +	fputc('\n', fp);  	return ret;  } @@ -168,6 +166,7 @@ static size_t callchain__fprintf_graph(FILE *fp, struct rb_root *root,  	struct rb_node *node;  	int i = 0;  	int ret = 0; +	char bf[1024];  	/*  	 * If have one single callchain root, don't bother printing @@ -196,10 +195,8 @@ static size_t callchain__fprintf_graph(FILE *fp, struct rb_root *root,  			} else  				ret += callchain__fprintf_left_margin(fp, left_margin); -			if (chain->ms.sym) -				ret += fprintf(fp, " %s\n", chain->ms.sym->name); -			else -				ret += fprintf(fp, " %p\n", (void *)(long)chain->ip); +			ret += fprintf(fp, "%s\n", callchain_list__sym_name(chain, bf, sizeof(bf), +							false));  			if (++entries_printed == callchain_param.print_limit)  				break; @@ -219,6 +216,7 @@ static size_t __callchain__fprintf_flat(FILE *fp, struct callchain_node *node,  {  	struct callchain_list *chain;  	size_t ret = 0; +	char bf[1024];  	if (!node)  		return 0; @@ -229,11 +227,8 @@ static size_t __callchain__fprintf_flat(FILE *fp, struct callchain_node *node,  	list_for_each_entry(chain, &node->val, list) {  		if (chain->ip >= PERF_CONTEXT_MAX)  			continue; -		if (chain->ms.sym) -			ret += fprintf(fp, "                %s\n", chain->ms.sym->name); -		else -			ret += fprintf(fp, "                %p\n", -					(void *)(long)chain->ip); +		ret += fprintf(fp, "                %s\n", callchain_list__sym_name(chain, +					bf, sizeof(bf), false));  	}  	return ret;  | 
