initial usertrace syscall and signal
[lttv.git] / usertrace / lttng_usertrace.c
1
2 /* LTTng user-space tracing code
3 *
4 * Copyright 2006 Mathieu Desnoyers
5 *
6 */
7
8
9 #include <sys/types.h>
10 #include <sys/wait.h>
11 #include <unistd.h>
12 #include <stdio.h>
13 #include <signal.h>
14 #include <syscall.h>
15
16 #include "lttng_usertrace.h"
17
18 /* signal handler */
19 void __lttng_sig_trace_handler(int signo)
20 {
21 printf("LTTng Sig handler : pid : %lu\n", getpid());
22 }
23
24
25
26 void __attribute__((constructor)) __lttng_user_init(void)
27 {
28 static struct sigaction act;
29 int err;
30
31 printf("LTTng user init\n");
32
33 /* Activate the signal */
34 act.sa_handler = __lttng_sig_trace_handler;
35 err = sigemptyset(&(act.sa_mask));
36 if(err) perror("Error with sigemptyset");
37 err = sigaddset(&(act.sa_mask), SIGRTMIN+3);
38 if(err) perror("Error with sigaddset");
39 err = sigaction(SIGRTMIN+3, &act, NULL);
40 if(err) perror("Error with sigaction");
41
42 /* Make the first ltt_update system call */
43 err = ltt_update(1, NULL, NULL);
44 if(err) {
45 printf("Error in ltt_update system call\n");
46 exit(1);
47 }
48 }
This page took 0.02973 seconds and 4 git commands to generate.