X-Git-Url: https://git.lttng.org/?a=blobdiff_plain;f=ltt-sessiond%2Ftrace.c;h=94d3c4946619c8429614b9f091f4000a91dd5ccc;hb=def15da36e82f865ea2ff37dd73132741dfc3399;hp=41c4355e939fa67e4c8a7f8b2c4d660e4fc0e6ff;hpb=cbbbb2757f90ecfc8bc2f51ba5bad8ed614577bb;p=lttng-tools.git diff --git a/ltt-sessiond/trace.c b/ltt-sessiond/trace.c index 41c4355e9..94d3c4946 100644 --- a/ltt-sessiond/trace.c +++ b/ltt-sessiond/trace.c @@ -183,11 +183,22 @@ struct ltt_kernel_event *trace_create_kernel_event(struct lttng_event *ev) attr->u.kprobe.offset = ev->attr.probe.offset; strncpy(attr->u.kprobe.symbol_name, ev->attr.probe.symbol_name, LTTNG_SYM_NAME_LEN); + attr->u.kprobe.symbol_name[LTTNG_SYM_NAME_LEN - 1] = '\0'; break; case LTTNG_EVENT_FUNCTION: + attr->instrumentation = LTTNG_KERNEL_KRETPROBE; + attr->u.kretprobe.addr = ev->attr.probe.addr; + attr->u.kretprobe.offset = ev->attr.probe.offset; + attr->u.kretprobe.offset = ev->attr.probe.offset; + strncpy(attr->u.kretprobe.symbol_name, + ev->attr.probe.symbol_name, LTTNG_SYM_NAME_LEN); + attr->u.kretprobe.symbol_name[LTTNG_SYM_NAME_LEN - 1] = '\0'; + break; + case LTTNG_EVENT_FUNCTION_ENTRY: attr->instrumentation = LTTNG_KERNEL_FUNCTION; strncpy(attr->u.ftrace.symbol_name, ev->attr.ftrace.symbol_name, LTTNG_SYM_NAME_LEN); + attr->u.ftrace.symbol_name[LTTNG_SYM_NAME_LEN - 1] = '\0'; break; case LTTNG_EVENT_TRACEPOINT: attr->instrumentation = LTTNG_KERNEL_TRACEPOINT; @@ -199,6 +210,7 @@ struct ltt_kernel_event *trace_create_kernel_event(struct lttng_event *ev) /* Copy event name */ strncpy(attr->name, ev->name, LTTNG_SYM_NAME_LEN); + attr->name[LTTNG_SYM_NAME_LEN - 1] = '\0'; /* Setting up a kernel event */ lke->fd = 0;