X-Git-Url: https://git.lttng.org/?p=lttng-tools.git;a=blobdiff_plain;f=lttng%2Fcommands%2Fenable_events.c;h=0d47b6291cec082cd469011157294dcda8ab107d;hp=f6bca6e94823fd28e997614ba55bf67b499b7ba7;hb=0133c1990185d0374ec06a751da23b7a84c54d78;hpb=775182faeba273d9c28db45f7d17cbe238aadaab diff --git a/lttng/commands/enable_events.c b/lttng/commands/enable_events.c index f6bca6e94..0d47b6291 100644 --- a/lttng/commands/enable_events.c +++ b/lttng/commands/enable_events.c @@ -53,6 +53,7 @@ enum { OPT_PROBE, OPT_FUNCTION, OPT_FUNCTION_ENTRY, + OPT_SYSCALLS, }; static struct lttng_handle *handle; @@ -72,6 +73,7 @@ static struct poptOption long_options[] = { {"probe", 0, POPT_ARG_STRING, 0, OPT_PROBE, 0, 0}, {"function", 0, POPT_ARG_STRING, 0, OPT_FUNCTION, 0, 0}, {"function:entry", 0, POPT_ARG_STRING, 0, OPT_FUNCTION_ENTRY, 0, 0}, + {"syscalls", 0, POPT_ARG_NONE, 0, OPT_SYSCALLS, 0, 0}, {0, 0, 0, 0, 0, 0, 0} }; @@ -103,6 +105,7 @@ static void usage(FILE *ofp) fprintf(ofp, " decimal (NNN...) or hexadecimal (0xNNN...)\n"); fprintf(ofp, " --function:entry symbol\n"); fprintf(ofp, " Function tracer event\n"); + fprintf(ofp, " --syscalls System calls\n"); fprintf(ofp, " --marker User-space marker (deprecated)\n"); fprintf(ofp, "\n"); } @@ -210,15 +213,33 @@ static int enable_events(char *session_name) } if (opt_enable_all) { - if (opt_kernel) { - ret = lttng_enable_event(handle, NULL, channel_name); - if (ret == 0) { - MSG("All kernel events are enabled in channel %s", channel_name); + switch (opt_event_type) { + case LTTNG_EVENT_TRACEPOINT: + if (opt_kernel) { + ret = lttng_enable_event(handle, NULL, channel_name); + if (ret == 0) { + MSG("All kernel events are enabled in channel %s", channel_name); + } + goto error; + } + /* TODO: User-space tracer */ + break; + case LTTNG_EVENT_SYSCALLS: + if (opt_kernel) { + ev.name[0] = '\0'; + ev.type = opt_event_type; + + ret = lttng_enable_event(handle, &ev, channel_name); + if (ret == 0) { + MSG("All kernel system calls are enabled in channel %s", channel_name); + } + goto error; } + break; + default: + MSG("Enable all not supported for this instrumentation type."); goto error; } - - /* TODO: User-space tracer */ } /* Strip event list */ @@ -258,6 +279,10 @@ static int enable_events(char *session_name) LTTNG_SYMBOL_NAME_LEN); ev.attr.ftrace.symbol_name[LTTNG_SYMBOL_NAME_LEN - 1] = '\0'; break; + case LTTNG_EVENT_SYSCALLS: + MSG("per-syscall selection not supported yet. Use \"-a\" for all syscalls."); + ret = CMD_NOT_IMPLEMENTED; + goto error; default: ret = CMD_NOT_IMPLEMENTED; goto error; @@ -339,6 +364,9 @@ int cmd_enable_events(int argc, const char **argv) opt_event_type = LTTNG_EVENT_FUNCTION_ENTRY; opt_function_entry_symbol = poptGetOptArg(pc); break; + case OPT_SYSCALLS: + opt_event_type = LTTNG_EVENT_SYSCALLS; + break; default: usage(stderr); ret = CMD_UNDEFINED;