[PATCH v1 4/7] perf annotate: Add --disassembler command-line option

From: Ian Rogers

Date: Tue Jun 09 2026 - 01:21:13 EST


Add the --disassembler command-line option to perf annotate. This
allows users to explicitly request or override the disassembler
preferences (e.g. --disassembler libasm) directly on the command
line.

Assisted-by: Antigravity:Google Gemini 3.5-flash
Signed-off-by: Ian Rogers <irogers@xxxxxxxxxx>
---
tools/perf/builtin-annotate.c | 10 ++++++++++
1 file changed, 10 insertions(+)

diff --git a/tools/perf/builtin-annotate.c b/tools/perf/builtin-annotate.c
index 8a0eb30eac24..57a88adfb130 100644
--- a/tools/perf/builtin-annotate.c
+++ b/tools/perf/builtin-annotate.c
@@ -699,6 +699,7 @@ int cmd_annotate(int argc, const char **argv)
.set = 0,
};
const char *disassembler_style = NULL, *objdump_path = NULL, *addr2line_path = NULL;
+ const char *disassemblers_str = NULL;
struct option options[] = {
OPT_STRING('i', "input", &input_name, "file",
"input file name"),
@@ -782,6 +783,8 @@ int cmd_annotate(int argc, const char **argv)
"Do not display empty (or dummy) events in the output"),
OPT_BOOLEAN(0, "code-with-type", &annotate_opts.code_with_type,
"Show data type info in code annotation (memory instructions only)"),
+ OPT_STRING(0, "disassembler", &disassemblers_str, "names",
+ "comma separated list of disassemblers to use"),
OPT_END()
};
int ret;
@@ -825,6 +828,13 @@ int cmd_annotate(int argc, const char **argv)
return -ENOMEM;
}

+ if (disassemblers_str) {
+ memset(annotate_opts.disassemblers, 0, sizeof(annotate_opts.disassemblers));
+ ret = annotation_options__add_disassemblers_str(&annotate_opts, disassemblers_str);
+ if (ret)
+ return -EINVAL;
+ }
+
if (annotate_check_args() < 0)
return -EINVAL;

--
2.54.0.1064.gd145956f57-goog