summaryrefslogtreecommitdiff
path: root/test/dlopen/dladdr.c
blob: b64c000bcc82ff8771451bed95f806159cb180b0 (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
#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;
}