case LTTNG_KERNEL_TRACEPOINT:
(*events)[i].type = LTTNG_EVENT_TRACEPOINT;
break;
- case LTTNG_KERNEL_KPROBE:
case LTTNG_KERNEL_KRETPROBE:
+ (*events)[i].type = LTTNG_EVENT_FUNCTION;
+ memcpy(&(*events)[i].attr.probe, &event->event->u.kprobe,
+ sizeof(struct lttng_kernel_kprobe));
+ break;
+ case LTTNG_KERNEL_KPROBE:
(*events)[i].type = LTTNG_EVENT_PROBE;
memcpy(&(*events)[i].attr.probe, &event->event->u.kprobe,
sizeof(struct lttng_kernel_kprobe));
}
break;
}
+ case LTTNG_EVENT_FUNCTION:
+ MSG("%s%s (type: function)%s%s", indent6,
+ event->name, enabled_string(event->enabled),
+ filter_string(event->filter));
+ if (event->attr.probe.addr != 0) {
+ MSG("%saddr: 0x%" PRIx64, indent8, event->attr.probe.addr);
+ } else {
+ MSG("%soffset: 0x%" PRIx64, indent8, event->attr.probe.offset);
+ MSG("%ssymbol: %s", indent8, event->attr.probe.symbol_name);
+ }
+ break;
case LTTNG_EVENT_PROBE:
MSG("%s%s (type: probe)%s%s", indent6,
event->name, enabled_string(event->enabled),
MSG("%ssymbol: %s", indent8, event->attr.probe.symbol_name);
}
break;
- case LTTNG_EVENT_FUNCTION:
case LTTNG_EVENT_FUNCTION_ENTRY:
MSG("%s%s (type: function)%s%s", indent6,
event->name, enabled_string(event->enabled),