X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;f=libust%2Ftracectl.c;h=e28b3159d73c1408b58b072850f2bb89a45d59eb;hb=c93858f1db9c8fedb9cb3dc751c95ce77083c7ee;hp=2d4341d3b418cd4957b8ab2efc95fbf564f6520e;hpb=c5fdc88852bc232e24fb3941ea5d5719b4490a87;p=ust.git diff --git a/libust/tracectl.c b/libust/tracectl.c index 2d4341d..e28b315 100644 --- a/libust/tracectl.c +++ b/libust/tracectl.c @@ -29,9 +29,9 @@ #include -#include "marker.h" +#include #include "tracer.h" -#include "localerr.h" +#include "usterr.h" #include "ustcomm.h" #include "relay.h" /* FIXME: remove */ #include "marker-control.h" @@ -117,7 +117,7 @@ static void print_markers(FILE *fp) marker_iter_start(&iter); while(iter.marker) { - fprintf(fp, "marker: %s/%s %d \"%s\"\n", iter.marker->channel, iter.marker->name, (int)imv_read(iter.marker->state), iter.marker->format); + fprintf(fp, "marker: %s/%s %d \"%s\" %p\n", iter.marker->channel, iter.marker->name, (int)imv_read(iter.marker->state), iter.marker->format, iter.marker->location); marker_iter_next(&iter); } unlock_markers(); @@ -798,61 +798,11 @@ void create_listener(void) have_listener = 1; } -/* The signal handler itself. Signals must be setup so there cannot be - nested signals. */ - -void sighandler(int sig) -{ - DBG("sighandler"); - - if(!have_listener) { - create_listener(); - } -} - -/* Called by the app signal handler to chain it to us. */ - -void chain_signal(void) -{ - sighandler(USTSIGNAL); -} - static int init_socket(void) { return ustcomm_init_app(getpid(), &ustcomm_app); } -static int init_signal_handler(void) -{ - /* Attempt to handler SIGIO. If the main program wants to - * handle it, fine, it'll override us. They it'll have to - * use the chaining function. - */ - - int result; - struct sigaction act; - - result = sigemptyset(&act.sa_mask); - if(result == -1) { - PERROR("sigemptyset"); - return -1; - } - - act.sa_handler = sighandler; - act.sa_flags = SA_RESTART; - - /* Only defer ourselves. Also, try to restart interrupted - * syscalls to disturb the traced program as little as possible. - */ - result = sigaction(SIGIO, &act, NULL); - if(result == -1) { - PERROR("sigaction"); - return -1; - } - - return 0; -} - #define AUTOPROBE_DISABLED 0 #define AUTOPROBE_ENABLE_ALL 1 #define AUTOPROBE_ENABLE_REGEX 2 @@ -887,7 +837,7 @@ static void auto_probe_connect(struct marker *m) if(result && result != -EEXIST) ERR("ltt_marker_connect (marker = %s/%s, errno = %d)", m->channel, m->name, -result); - DBG("auto connected marker %s %s to probe default", m->channel, m->name); + DBG("auto connected marker %s (addr: %p) %s to probe default", m->channel, m, m->name); } @@ -916,11 +866,8 @@ static void __attribute__((constructor)) init() ERR("init_socket error"); return; } - result = init_signal_handler(); - if(result == -1) { - ERR("init_signal_handler error"); - return; - } + + create_listener(); autoprobe_val = getenv("UST_AUTOPROBE"); if(autoprobe_val) {