Re: [PATCH v3 5/8] perf annotate: Add --code-with-type support for TUI

From: Arnaldo Carvalho de Melo
Date: Wed Jul 23 2025 - 12:20:52 EST


On Wed, Jul 23, 2025 at 01:04:11PM -0300, Arnaldo Carvalho de Melo wrote:
> On Tue, Jul 15, 2025 at 10:00:51PM -0700, Namhyung Kim wrote:
> > Until now, the --code-with-type option is available only on stdio.
> > But it was an artifical limitation because of an implemention issue.
> >
> > Implement the same logic in annotation_line__write() for stdio2/TUI.
> > Make disasm_line__write() return the number of printed characters so
> > that it can skip unnecessary operations when the screen is full.
> >
> > Remove the limitation and update the man page.
> >
> > Signed-off-by: Namhyung Kim <namhyung@xxxxxxxxxx>
> > ---
> > tools/perf/Documentation/perf-annotate.txt | 1 -
> > tools/perf/builtin-annotate.c | 5 --
> > tools/perf/ui/browsers/annotate.c | 6 +++
> > tools/perf/util/annotate.c | 61 +++++++++++++++++++---
> > 4 files changed, 61 insertions(+), 12 deletions(-)
> >
> > diff --git a/tools/perf/Documentation/perf-annotate.txt b/tools/perf/Documentation/perf-annotate.txt
> > index 46090c5b42b4762f..547f1a2680185e3c 100644
> > --- a/tools/perf/Documentation/perf-annotate.txt
> > +++ b/tools/perf/Documentation/perf-annotate.txt
> > @@ -170,7 +170,6 @@ include::itrace.txt[]
> >
> > --code-with-type::
> > Show data type info in code annotation (for memory instructions only).
> > - Currently it only works with --stdio option.
> >
> >
> > SEE ALSO
> > diff --git a/tools/perf/builtin-annotate.c b/tools/perf/builtin-annotate.c
> > index 9833c2c82a2fee46..6debd725392db4a4 100644
> > --- a/tools/perf/builtin-annotate.c
> > +++ b/tools/perf/builtin-annotate.c
> > @@ -917,11 +917,6 @@ int cmd_annotate(int argc, const char **argv)
> > symbol_conf.annotate_data_sample = true;
> > } else if (annotate_opts.code_with_type) {
> > symbol_conf.annotate_data_member = true;
> > -
> > - if (!annotate.use_stdio) {
> > - pr_err("--code-with-type only works with --stdio.\n");
> > - goto out_delete;
> > - }
> > }
> >
> > setup_browser(true);
> > diff --git a/tools/perf/ui/browsers/annotate.c b/tools/perf/ui/browsers/annotate.c
> > index 23bea5b165774ae7..cdee1969f3131a7c 100644
> > --- a/tools/perf/ui/browsers/annotate.c
> > +++ b/tools/perf/ui/browsers/annotate.c
> > @@ -4,6 +4,7 @@
> > #include "../ui.h"
> > #include "../../util/annotate.h"
> > #include "../../util/debug.h"
> > +#include "../../util/debuginfo.h"
> > #include "../../util/dso.h"
> > #include "../../util/hist.h"
> > #include "../../util/sort.h"
> > @@ -1101,6 +1102,9 @@ int __hist_entry__tui_annotate(struct hist_entry *he, struct map_symbol *ms,
> >
> > ui_helpline__push("Press ESC to exit");
> >
> > + if (annotate_opts.code_with_type)
> > + browser.dbg = debuginfo__new(dso__long_name(dso));
>
> Some error checking here to tell the user if debuginfo isn't available
> and hints on how to get it in place?

Ok, you did it later with:

commit 81d638a1b96ec04d7c41e163b5077419cf85e798 (HEAD)
Author: Namhyung Kim <namhyung@xxxxxxxxxx>
Date: Tue Jul 15 22:00:53 2025 -0700

perf annotate: Show warning when debuginfo is not available

When user requests data-type annotation but no DWARF info is available,
show a warning message about it.

- Arnaldo