blob: 7c590724eb853e56b1654443b189fe605ee1226d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
/* usymbol test case
* Copyright (C) 2008, Red Hat Inc.
*
* This file is part of systemtap, and is free software. You can
* redistribute it and/or modify it under the terms of the GNU General
* Public License (GPL); either version 2, or (at your option) any
* later version.
*
* Uses signal to tranfer user space addresses into the kernel where a
* probe on sigaction will extract them and produce the symbols. To
* poke into the executable we get the sa_handler from the main executable,
* and then the library through calling signal.
*
* FIXME. We call into the library to get the right symbol. If we
* register the handler from the main executable. We need to handle
* @plt symbols (setting a handler in the main executable that is in a
* shared library will have the @plt address, not the address inside
* the shared library).
*/
#include <signal.h>
typedef void (*sighandler_t)(int);
// function from our library
int lib_main (void);
void
main_handler (int signum)
{
/* dummy handler, just used for the address... */
}
int
main (int argc, char *argv[], char *envp[])
{
// Use SIGFPE since we never expect that to be triggered.
signal(SIGFPE, main_handler);
lib_main();
}
|