]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blobdiff - tools/perf/ui/browsers/hists.c
perf report: Show branch info in callchain entry for browser mode
[mirror_ubuntu-artful-kernel.git] / tools / perf / ui / browsers / hists.c
index 84f5dd2fb59cb17f2c97b9c62a72133abdd1f308..66676cb8effe8f488d93ece2373ce1adb32d2e8d 100644 (file)
@@ -738,6 +738,7 @@ static int hist_browser__show_callchain_list(struct hist_browser *browser,
                                             struct callchain_print_arg *arg)
 {
        char bf[1024], *alloc_str;
+       char buf[64], *alloc_str2;
        const char *str;
 
        if (arg->row_offset != 0) {
@@ -746,12 +747,26 @@ static int hist_browser__show_callchain_list(struct hist_browser *browser,
        }
 
        alloc_str = NULL;
+       alloc_str2 = NULL;
+
        str = callchain_list__sym_name(chain, bf, sizeof(bf),
                                       browser->show_dso);
 
-       if (need_percent) {
-               char buf[64];
+       if (symbol_conf.show_branchflag_count) {
+               if (need_percent)
+                       callchain_list_counts__printf_value(node, chain, NULL,
+                                                           buf, sizeof(buf));
+               else
+                       callchain_list_counts__printf_value(NULL, chain, NULL,
+                                                           buf, sizeof(buf));
+
+               if (asprintf(&alloc_str2, "%s%s", str, buf) < 0)
+                       str = "Not enough memory!";
+               else
+                       str = alloc_str2;
+       }
 
+       if (need_percent) {
                callchain_node__scnprintf_value(node, buf, sizeof(buf),
                                                total);
 
@@ -764,6 +779,7 @@ static int hist_browser__show_callchain_list(struct hist_browser *browser,
        print(browser, chain, str, offset, row, arg);
 
        free(alloc_str);
+       free(alloc_str2);
        return 1;
 }