diff options
Diffstat (limited to 'test/dlopen/dladdr.c')
-rw-r--r-- | test/dlopen/dladdr.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/test/dlopen/dladdr.c b/test/dlopen/dladdr.c new file mode 100644 index 0000000..b64c000 --- /dev/null +++ b/test/dlopen/dladdr.c @@ -0,0 +1,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; +} + |