Em Tue, Oct 31, 2023 at 08:08:23AM +0000, Yang Jihong escreveu:
Before:
# perf --debug
No variable specified for --debug.
After:
# perf --debug
No variable specified for --debug, available options: verbose,ordered-events,stderr,data-convert,perf-event-open.
Looks useful, but the implementation can be different to reduce
maintainership costs, see below:
+++ b/tools/perf/perf.c
@@ -279,7 +279,9 @@ static int handle_options(const char ***argv, int *argc, int *envchanged)
} else if (!strcmp(cmd, "--debug")) {
if (*argc < 2) {
- fprintf(stderr, "No variable specified for --debug.\n");
+ fprintf(stderr,
+ "No variable specified for --debug, available options: %s.\n",
+ perf_debug_options_string);
usage(perf_usage_string);
+++ b/tools/perf/util/debug.c
@@ -215,6 +215,9 @@ void trace_event(union perf_event *event)
trace_event_printer, event);
}
+const char perf_debug_options_string[] =
+ "verbose,ordered-events,stderr,data-convert,perf-event-open";
Instead of adding a new variable that has to be kept in sync with
debug_opts[], you could provide a function that iterates debug_opts,
printing its options names, then use that function on perf.c handle_options.