root/usr/src/test/os-tests/tests/secflags/addrs.c
#include <sys/mman.h>

#include <stdlib.h>
#include <unistd.h>
#include <err.h>

int
main(int argc, char **argv)
{
        int stack = 0;
        void *heap = NULL;
        void *mapping = NULL;

        if ((heap = malloc(10)) == NULL)
                err(1, "couldn't allocate");

        if ((mapping = mmap((caddr_t)0, 10, (PROT_READ | PROT_WRITE),
            MAP_ANON|MAP_PRIVATE, -1, 0)) == (void*)-1)
                err(1, "couldn't map");

        printf("  stack: 0x%p\n", &stack);
        printf("   heap: 0x%p\n", heap);
        printf("mapping: 0x%p\n", mapping);
        printf("   text: 0x%p\n", &main);
        return (0);
}