|
|
@@ -1961,7 +1961,7 @@ static int parse_metric_groups(const struct option *opt,
|
|
|
return metricgroup__parse_groups(opt, str, &metric_events);
|
|
|
}
|
|
|
|
|
|
-static const struct option stat_options[] = {
|
|
|
+static struct option stat_options[] = {
|
|
|
OPT_BOOLEAN('T', "transaction", &transaction_run,
|
|
|
"hardware transaction statistics"),
|
|
|
OPT_CALLBACK('e', "event", &evsel_list, "event",
|
|
|
@@ -2847,6 +2847,12 @@ int cmd_stat(int argc, const char **argv)
|
|
|
return -ENOMEM;
|
|
|
|
|
|
parse_events__shrink_config_terms();
|
|
|
+
|
|
|
+ /* String-parsing callback-based options would segfault when negated */
|
|
|
+ set_option_flag(stat_options, 'e', "event", PARSE_OPT_NONEG);
|
|
|
+ set_option_flag(stat_options, 'M', "metrics", PARSE_OPT_NONEG);
|
|
|
+ set_option_flag(stat_options, 'G', "cgroup", PARSE_OPT_NONEG);
|
|
|
+
|
|
|
argc = parse_options_subcommand(argc, argv, stat_options, stat_subcommands,
|
|
|
(const char **) stat_usage,
|
|
|
PARSE_OPT_STOP_AT_NON_OPTION);
|