uint32_t size;
struct sockaddr_un addr;
socklen_t addrlen = sizeof(addr);
+ char trace_name[] = "auto";
+ char trace_type[] = "ustrelay";
for(;;) {
struct trctl_msg msg;
continue;
}
- if(recvbuf[len-2] == '\n')
- recvbuf[len-2] = '\0';
+ if(recvbuf[len-1] == '\n')
+ recvbuf[len-1] = '\0';
fprintf(stderr, "received a message! it's: %s\n", recvbuf);
}
else if(!strcmp(recvbuf, "trace_setup")) {
DBG("trace setup");
+
+ result = ltt_trace_setup(trace_name);
+ if(result < 0) {
+ ERR("ltt_trace_setup failed");
+ return;
+ }
+
+ result = ltt_trace_set_type(trace_name, trace_type);
+ if(result < 0) {
+ ERR("ltt_trace_set_type failed");
+ return;
+ }
}
else if(!strcmp(recvbuf, "trace_alloc")) {
DBG("trace alloc");
+
+ result = ltt_trace_alloc(trace_name);
+ if(result < 0) {
+ ERR("ltt_trace_alloc failed");
+ return;
+ }
}
else if(!strcmp(recvbuf, "trace_start")) {
DBG("trace start");
+
+ result = ltt_trace_start(trace_name);
+ if(result < 0) {
+ ERR("ltt_trace_start failed");
+ return;
+ }
}
else if(!strcmp(recvbuf, "trace_stop")) {
DBG("trace stop");
+
+ result = ltt_trace_stop(trace_name);
+ if(result < 0) {
+ ERR("ltt_trace_stop failed");
+ return;
+ }
+ }
+ else if(!strcmp(recvbuf, "trace_destroy")) {
+
+ DBG("trace destroy");
+
+ result = ltt_trace_destroy(trace_name);
+ if(result < 0) {
+ ERR("ltt_trace_destroy failed");
+ return;
+ }
}
}
next_conn:;
return 0;
}
-static void __attribute__((constructor)) init()
+static void auto_probe_connect(struct marker *m)
+{
+ int result;
+
+ result = ltt_marker_connect(m->channel, m->name, "default");
+ if(result)
+ ERR("ltt_marker_connect");
+
+ DBG("just auto connected marker %s %s to probe default", m->channel, m->name);
+}
+
+static void __attribute__((constructor(101))) init0()
+{
+ DBG("UST_AUTOPROBE constructor");
+ if(getenv("UST_AUTOPROBE")) {
+ marker_set_new_marker_cb(auto_probe_connect);
+ }
+}
+
+static void __attribute__((constructor(1000))) init()
{
int result;
+ DBG("UST_TRACE constructor");
+
mypid = getpid();
if(getenv("UST_TRACE")) {
/* Ensure markers are initialized */
init_markers();
- result = ltt_marker_connect("foo", "bar", "default");
- if(result)
- ERR("ltt_marker_connect");
+ /* In case. */
+ ltt_channels_register("ust");
result = ltt_trace_setup(trace_name);
if(result < 0) {