case DESTROY_TRACE:
case ENABLE_MARKER:
case DISABLE_MARKER:
- args = (char **)malloc(sizeof(char **) * argc + 3);
+ args = (char **)malloc(sizeof(char *) * (argc + 3));
optind--;
args[optind] = strdup(&argv[optind][2]);
for (i = optind + 1; i < argc; i++) {
return 0;
}
+static int list_pids(int argc, char *argv[])
+{
+ pid_t *pid_list;
+ int i;
+
+ pid_list = ustctl_get_online_pids();
+ if (!pid_list) {
+ return -1;
+ }
+
+ for (i = 0; pid_list[i]; i++) {
+ printf("%ld\n", (long)pid_list[i]);
+ }
+
+ free(pid_list);
+
+ return 0;
+}
+
struct cli_cmd __cli_cmds general_cmds[] = {
{
.name = "list-trace-events",
.desired_args = 1,
.desired_args_op = CLI_EQ,
},
+ {
+ .name = "list-pids",
+ .description = "List traceable pids",
+ .help_text = "list-pids\n"
+ "List the traceable pids for the current user\n",
+ .function = list_pids,
+ .desired_args = 0,
+ .desired_args_op = CLI_EQ,
+ },
};