blob: a4b6f63d50d1a97d2ac5b7022458e87726766e1a [file] [log] [blame]
#include <stdio.h>
#include <string.h>
#include <unistd.h>
int main()
{
FILE *maps;
void *vdso_begin, *vdso_end;
int found_vdso = 0;
maps = fopen("/proc/self/maps", "r");
char buf[1024];
while (fgets(buf, 1024, maps)) {
if (strstr(buf, "[vdso]")) {
found_vdso = 1;
break;
}
}
fclose(maps);
if (!found_vdso) {
fprintf(stderr, "Could not find vdso mapping\n");
return 1;
}
sscanf(buf, "%p-%p", &vdso_begin, &vdso_end);
write(1, vdso_begin, vdso_end - vdso_begin);
return 0;
}