diff options
Diffstat (limited to 'tools/perf/builtin-mem.c')
| -rw-r--r-- | tools/perf/builtin-mem.c | 16 |
1 files changed, 11 insertions, 5 deletions
diff --git a/tools/perf/builtin-mem.c b/tools/perf/builtin-mem.c index 651188c1d825..d43500b92a7b 100644 --- a/tools/perf/builtin-mem.c +++ b/tools/perf/builtin-mem.c @@ -1,9 +1,11 @@ // SPDX-License-Identifier: GPL-2.0 +#include <errno.h> #include <inttypes.h> #include <sys/types.h> #include <sys/stat.h> #include <unistd.h> #include "builtin.h" +#include "perf.h" #include <subcmd/parse-options.h> #include "util/auxtrace.h" @@ -73,6 +75,7 @@ static int __cmd_record(int argc, const char **argv, struct perf_mem *mem, int rec_argc, i = 0, j; int start, end; const char **rec_argv; + char *event_name_storage = NULL; int ret; struct perf_mem_event *e; struct perf_pmu *pmu; @@ -139,7 +142,7 @@ static int __cmd_record(int argc, const char **argv, struct perf_mem *mem, rec_argv[i++] = "--data-page-size"; start = i; - ret = perf_mem_events__record_args(rec_argv, &i); + ret = perf_mem_events__record_args(rec_argv, &i, &event_name_storage); if (ret) goto out; end = i; @@ -169,6 +172,7 @@ static int __cmd_record(int argc, const char **argv, struct perf_mem *mem, ret = cmd_record(i, rec_argv); out: + free(event_name_storage); free(rec_argv); return ret; } @@ -301,7 +305,7 @@ static int report_raw_events(struct perf_mem *mem) goto out_delete; } - ret = symbol__init(&session->header.env); + ret = symbol__init(perf_session__env(session)); if (ret < 0) goto out_delete; @@ -520,6 +524,7 @@ int cmd_mem(int argc, const char **argv) NULL, NULL }; + int ret; argc = parse_options_subcommand(argc, argv, mem_options, mem_subcommands, mem_usage, PARSE_OPT_STOP_AT_NON_OPTION); @@ -535,14 +540,15 @@ int cmd_mem(int argc, const char **argv) } if (strlen(argv[0]) > 2 && strstarts("record", argv[0])) - return __cmd_record(argc, argv, &mem, record_options); + ret = __cmd_record(argc, argv, &mem, record_options); else if (strlen(argv[0]) > 2 && strstarts("report", argv[0])) - return __cmd_report(argc, argv, &mem, report_options); + ret = __cmd_report(argc, argv, &mem, report_options); else usage_with_options(mem_usage, mem_options); /* free usage string allocated by parse_options_subcommand */ free((void *)mem_usage[0]); + free(sort_order_help); - return 0; + return ret; } |
