X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=liblttng-ust%2Fltt-probes.c;h=aeb6db65224340a311ca320142b841800b9e9772;hb=7bc53e94a229963972aa78880b361b1510fdd268;hp=9072d37e30f0eb5f8470ec583a0d586cd8f321ac;hpb=400033107ea279bb8a1530ddec13e1453dc4c4a3;p=lttng-ust.git diff --git a/liblttng-ust/ltt-probes.c b/liblttng-ust/ltt-probes.c index 9072d37e..aeb6db65 100644 --- a/liblttng-ust/ltt-probes.c +++ b/liblttng-ust/ltt-probes.c @@ -244,6 +244,28 @@ int ltt_probes_get_field_list(struct lttng_ust_field_list *list) probe_desc->event_desc[i]; int j; + if (event_desc->nr_fields == 0) { + /* Events without fields. */ + struct tp_field_list_entry *list_entry; + + list_entry = zmalloc(sizeof(*list_entry)); + if (!list_entry) + goto err_nomem; + cds_list_add(&list_entry->head, &list->head); + strncpy(list_entry->field.event_name, + event_desc->name, + LTTNG_UST_SYM_NAME_LEN); + list_entry->field.event_name[LTTNG_UST_SYM_NAME_LEN - 1] = '\0'; + list_entry->field.field_name[0] = '\0'; + list_entry->field.type = LTTNG_UST_FIELD_OTHER; + if (!event_desc->loglevel) { + list_entry->field.loglevel = TRACE_DEFAULT; + } else { + list_entry->field.loglevel = *(*event_desc->loglevel); + } + list_entry->field.nowrite = 1; + } + for (j = 0; j < event_desc->nr_fields; j++) { const struct lttng_event_field *event_field = &event_desc->fields[j]; @@ -296,6 +318,7 @@ int ltt_probes_get_field_list(struct lttng_ust_field_list *list) } else { list_entry->field.loglevel = *(*event_desc->loglevel); } + list_entry->field.nowrite = event_field->nowrite; } } } @@ -367,13 +390,13 @@ void ltt_probes_create_wildcard_events(struct wildcard_entry *entry, memcpy(&event_param, &wildcard->event_param, sizeof(event_param)); - memcpy(event_param.name, + strncpy(event_param.name, event_desc->name, sizeof(event_param.name)); + event_param.name[sizeof(event_param.name) - 1] = '\0'; /* create event */ ret = ltt_event_create(wildcard->chan, - &event_param, NULL, - &ev); + &event_param, &ev); if (ret) { DBG("Error creating event"); continue; @@ -383,5 +406,6 @@ void ltt_probes_create_wildcard_events(struct wildcard_entry *entry, } } } + lttng_filter_wildcard_link_bytecode(wildcard); }