]> www.infradead.org Git - users/hch/misc.git/commitdiff
perf annotate: Add 'T' hot key to toggle data type display
authorNamhyung Kim <namhyung@kernel.org>
Sat, 16 Aug 2025 03:16:31 +0000 (20:16 -0700)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Thu, 28 Aug 2025 15:33:18 +0000 (12:33 -0300)
Support data type display with a key press so that users can toggle the
output dynamically on TUI.  Also display "[Type]" in the title line if
it's enabled.

Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Tested-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Ian Rogers <irogers@google.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@kernel.org>
Cc: Kan Liang <kan.liang@linux.intel.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: https://lore.kernel.org/r/20250816031635.25318-9-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/ui/browsers/annotate.c

index e5b35336f0d33d7e5621e50f5aade8c0562c08ce..dfe869c20e35da774cc6c9d5eaa86862d215eaeb 100644 (file)
@@ -533,9 +533,10 @@ static void ui_browser__init_asm_mode(struct ui_browser *browser)
 static int sym_title(struct symbol *sym, struct map *map, char *title,
                     size_t sz, int percent_type)
 {
-       return snprintf(title, sz, "%s  %s [Percent: %s]", sym->name,
+       return snprintf(title, sz, "%s  %s [Percent: %s] %s", sym->name,
                        dso__long_name(map__dso(map)),
-                       percent_type_str(percent_type));
+                       percent_type_str(percent_type),
+                       annotate_opts.code_with_type ? "[Type]" : "");
 }
 
 /*
@@ -909,7 +910,8 @@ static int annotate_browser__run(struct annotate_browser *browser,
                "b             Toggle percent base [period/hits]\n"
                "B             Branch counter abbr list (Optional)\n"
                "?             Search string backwards\n"
-               "f             Toggle showing offsets to full address\n");
+               "f             Toggle showing offsets to full address\n"
+               "T             Toggle data type display\n");
                        continue;
                case 'r':
                        script_browse(NULL, NULL);
@@ -1029,6 +1031,12 @@ show_sup_ins:
                case 'f':
                        annotation__toggle_full_addr(notes, ms);
                        continue;
+               case 'T':
+                       annotate_opts.code_with_type ^= 1;
+                       if (browser->dbg == NULL)
+                               browser->dbg = debuginfo__new(dso__long_name(map__dso(ms->map)));
+                       annotate_browser__show(&browser->b, title, help);
+                       continue;
                case K_LEFT:
                case '<':
                case '>':
@@ -1133,8 +1141,7 @@ int __hist_entry__tui_annotate(struct hist_entry *he, struct map_symbol *ms,
 
        ret = annotate_browser__run(&browser, evsel, hbt);
 
-       if (annotate_opts.code_with_type)
-               debuginfo__delete(browser.dbg);
+       debuginfo__delete(browser.dbg);
        if (not_annotated && !notes->src->tried_source)
                annotated_source__purge(notes->src);