X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;ds=sidebyside;f=liblttng-ust%2Fltt-events.c;h=ab099e1aba89afedb6a9456c0768509277500a8c;hb=180901e6c233d9a352ab4ba5f31ddae460017774;hp=0fdfd2fd5bcdb115ace5ea1b4d70663c50b0a8eb;hpb=fbdeb5ecb8ff9b7d73a72de9fc66d07f7797d93f;p=lttng-ust.git diff --git a/liblttng-ust/ltt-events.c b/liblttng-ust/ltt-events.c index 0fdfd2fd..ab099e1a 100644 --- a/liblttng-ust/ltt-events.c +++ b/liblttng-ust/ltt-events.c @@ -251,14 +251,15 @@ int pending_probe_fix_events(const struct lttng_event_desc *desc) sizeof(event_param.name)); /* create event */ ret = ltt_event_create(sw->chan, - &event_param, NULL, - &ev); + &event_param, &ev); if (ret) { DBG("Error creating event"); continue; } cds_list_add(&ev->wildcard_list, &sw->events); + lttng_filter_event_link_bytecode(ev, + sw->filter_bytecode); } } } @@ -295,6 +296,8 @@ int pending_probe_fix_events(const struct lttng_event_desc *desc) event->id = chan->free_event_id++; ret |= _ltt_event_metadata_statedump(chan->session, chan, event); + lttng_filter_event_link_bytecode(event, + event->filter_bytecode); } return ret; } @@ -500,7 +503,6 @@ void _ltt_channel_destroy(struct ltt_channel *chan) */ int ltt_event_create(struct ltt_channel *chan, struct lttng_ust_event *event_param, - void (*filter)(struct ltt_event *event), struct ltt_event **_event) { const struct lttng_event_desc *desc = NULL; /* silence gcc */ @@ -548,7 +550,6 @@ int ltt_event_create(struct ltt_channel *chan, goto cache_error; } event->chan = chan; - event->filter = filter; /* * used_event_id counts the maximum number of event IDs that can * register if all probes register. @@ -653,6 +654,8 @@ void _ltt_event_destroy(struct ltt_event *event) } cds_list_del(&event->list); lttng_destroy_context(event->ctx); + free(event->filter_bytecode); + free(event->filter_data); free(event); } @@ -723,6 +726,9 @@ int _ltt_field_statedump(struct ltt_session *session, { int ret = 0; + if (field->nowrite) + return 0; + switch (field->type.atype) { case atype_integer: ret = lttng_metadata_printf(session, @@ -1109,6 +1115,7 @@ int _ltt_session_metadata_statedump(struct ltt_session *session) struct ltt_event *event; int ret = 0; char procname[LTTNG_UST_PROCNAME_LEN] = ""; + char hostname[HOST_NAME_MAX]; if (!CMM_ACCESS_ONCE(session->active)) return 0; @@ -1165,10 +1172,15 @@ int _ltt_session_metadata_statedump(struct ltt_session *session) goto end; /* ignore error, just use empty string if error. */ + hostname[0] = '\0'; + ret = gethostname(hostname, sizeof(hostname)); + if (ret && errno == ENAMETOOLONG) + hostname[HOST_NAME_MAX - 1] = '\0'; lttng_ust_getprocname(procname); procname[LTTNG_UST_PROCNAME_LEN - 1] = '\0'; ret = lttng_metadata_printf(session, "env {\n" + " hostname = \"%s\";\n" " vpid = %d;\n" " procname = \"%s\";\n" " domain = \"ust\";\n" @@ -1177,6 +1189,7 @@ int _ltt_session_metadata_statedump(struct ltt_session *session) " tracer_minor = %u;\n" " tracer_patchlevel = %u;\n" "};\n\n", + hostname, (int) getpid(), procname, LTTNG_UST_MAJOR_VERSION, @@ -1417,6 +1430,7 @@ void _remove_wildcard(struct session_wildcard *wildcard) cds_list_del(&wildcard->entry->list); free(wildcard->entry); } + free(wildcard->filter_bytecode); free(wildcard); }