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
|
#include <dlfcn.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int main(int argc, char **argv)
{
Dl_info info;
int res = 0;
memset(&info, '\0', sizeof(Dl_info));
res = dladdr((void *)1, &info);
if (res != 0) {
fprintf(stderr, "dladdr() should fail\n");
fprintf(stderr, "dli_fname = %s\n", info.dli_fname);
fprintf(stderr, "dli_fbase = 0x%08x\n", (unsigned int)info.dli_fbase);
fprintf(stderr, "dli_sname = %s\n", info.dli_sname);
fprintf(stderr, "dli_saddr = 0x%08x\n", (unsigned int)info.dli_saddr);
exit(1);
}
fprintf(stderr, "dladdr() failed as expected\n");
return EXIT_SUCCESS;
}
|