b8b00688 |
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 | } |