/* * Ask session daemon for all user space tracepoints available. */ static int list_ust_events(void) { int i, size; struct lttng_domain domain; struct lttng_handle *handle; struct lttng_event *event_list; pid_t cur_pid = 0; char *cmdline = NULL; memset(&domain, 0, sizeof(domain)); DBG("Getting UST tracing events"); domain.type = LTTNG_DOMAIN_UST; handle = lttng_create_handle(NULL, &domain); if (handle == NULL) { goto error; } size = lttng_list_tracepoints(handle, &event_list); if (size < 0) { ERR("Unable to list UST events: %s", lttng_strerror(size)); lttng_destroy_handle(handle); return size; } MSG("UST events:\n-------------"); if (size == 0) { MSG("None"); } for (i = 0; i < size; i++) { if (cur_pid != event_list[i].pid) { cur_pid = event_list[i].pid; cmdline = get_cmdline_by_pid(cur_pid); MSG("\nPID: %d - Name: %s", cur_pid, cmdline); free(cmdline); } print_events(&event_list[i]); } MSG(""); free(event_list); lttng_destroy_handle(handle); return CMD_SUCCESS; error: lttng_destroy_handle(handle); return -1; }
/* * Ask for all trace events in the kernel */ static int list_kernel_events(void) { int i, size, ret = CMD_SUCCESS; struct lttng_domain domain; struct lttng_handle *handle; struct lttng_event *event_list; memset(&domain, 0, sizeof(domain)); DBG("Getting kernel tracing events"); domain.type = LTTNG_DOMAIN_KERNEL; handle = lttng_create_handle(NULL, &domain); if (handle == NULL) { ret = CMD_ERROR; goto error; } size = lttng_list_tracepoints(handle, &event_list); if (size < 0) { ERR("Unable to list kernel events: %s", lttng_strerror(size)); lttng_destroy_handle(handle); return CMD_ERROR; } if (lttng_opt_mi) { /* Mi print */ ret = mi_list_kernel_events(event_list, size, &domain); if (ret) { ret = CMD_ERROR; goto end; } } else { MSG("Kernel events:\n-------------"); for (i = 0; i < size; i++) { print_events(&event_list[i]); } MSG(""); } end: free(event_list); lttng_destroy_handle(handle); return ret; error: lttng_destroy_handle(handle); return ret; }
/* * Ask for all trace events in the kernel and pretty print them. */ static int list_kernel_events(void) { int i, size; struct lttng_domain domain; struct lttng_handle *handle; struct lttng_event *event_list; memset(&domain, 0, sizeof(domain)); DBG("Getting kernel tracing events"); domain.type = LTTNG_DOMAIN_KERNEL; handle = lttng_create_handle(NULL, &domain); if (handle == NULL) { goto error; } size = lttng_list_tracepoints(handle, &event_list); if (size < 0) { ERR("Unable to list kernel events"); lttng_destroy_handle(handle); return size; } MSG("Kernel events:\n-------------"); for (i = 0; i < size; i++) { print_events(&event_list[i]); } MSG(""); free(event_list); lttng_destroy_handle(handle); return CMD_SUCCESS; error: lttng_destroy_handle(handle); return -1; }
static int list_agent_events(void) { int i, size, ret = CMD_SUCCESS; struct lttng_domain domain; struct lttng_handle *handle = NULL; struct lttng_event *event_list = NULL; pid_t cur_pid = 0; char *cmdline = NULL; const char *agent_domain_str; memset(&domain, 0, sizeof(domain)); if (opt_jul) { domain.type = LTTNG_DOMAIN_JUL; } else if (opt_log4j) { domain.type = LTTNG_DOMAIN_LOG4J; } else if (opt_python) { domain.type = LTTNG_DOMAIN_PYTHON; } else { ERR("Invalid agent domain selected."); ret = CMD_ERROR; goto error; } agent_domain_str = get_domain_str(domain.type); DBG("Getting %s tracing events", agent_domain_str); handle = lttng_create_handle(NULL, &domain); if (handle == NULL) { ret = CMD_ERROR; goto end; } size = lttng_list_tracepoints(handle, &event_list); if (size < 0) { ERR("Unable to list %s events: %s", agent_domain_str, lttng_strerror(size)); ret = CMD_ERROR; goto end; } if (lttng_opt_mi) { /* Mi print */ ret = mi_list_agent_ust_events(event_list, size, &domain); if (ret) { ret = CMD_ERROR; goto error; } } else { /* Pretty print */ MSG("%s events (Logger name):\n-------------------------", agent_domain_str); if (size == 0) { MSG("None"); } for (i = 0; i < size; i++) { if (cur_pid != event_list[i].pid) { cur_pid = event_list[i].pid; cmdline = get_cmdline_by_pid(cur_pid); if (cmdline == NULL) { ret = CMD_ERROR; goto error; } MSG("\nPID: %d - Name: %s", cur_pid, cmdline); free(cmdline); } MSG("%s- %s", indent6, event_list[i].name); } MSG(""); } error: free(event_list); end: lttng_destroy_handle(handle); return ret; }