In Linux, the easiest way to look at a process\' memory map is looking at /proc/PID/maps, giving something like this:
08048000-08056000 r-xp 00000000
Take a look at this thread from 2007 on the Darwin-kernel mailing list. In a nutshell, your choices are to popen vmmap (which is setgid appropriately) or use the Mach VM region APIs in /usr/include/mach/mach_vm.h. I found a decent example of using the Mach API in the Sage Mathematics System sources.