#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; }