-
-
Save wiggin15/0a4c51b5bc6c52e6e31e2234f88558ab to your computer and use it in GitHub Desktop.
vm_region_recurse_64 / proc_regionfilename
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #include <errno.h> | |
| #include <stdlib.h> | |
| #include <stdio.h> | |
| #include <libproc.h> | |
| #include <mach/mach.h> | |
| #include <CoreFoundation/CoreFoundation.h> | |
| int main(void) | |
| { | |
| kern_return_t kr = KERN_SUCCESS; | |
| vm_address_t address = 0; | |
| vm_size_t size = 0; | |
| uint32_t depth = 0; | |
| mach_port_t task = MACH_PORT_NULL; | |
| char buf[PATH_MAX]; | |
| int ret; | |
| pid_t pid = getpid(); | |
| task_for_pid(mach_task_self(), pid, &task); | |
| while (1) { | |
| mach_msg_type_number_t count = VM_REGION_SUBMAP_INFO_COUNT_64; | |
| struct vm_region_submap_info_64 info; | |
| kr = vm_region_recurse_64(task, &address, &size, &depth, | |
| (vm_region_recurse_info_t)&info, &count); | |
| if (kr) { | |
| break; | |
| } | |
| if (info.is_submap) { | |
| depth++; | |
| printf("Recursing into %016lx-%016lx\n", address, address+size); | |
| } else { | |
| errno = 0; | |
| ret = proc_regionfilename(pid, address, buf, sizeof(buf)); | |
| printf("%016lx-%016lx (depth=%d) %s (errno=%d ret=%d)\n", address, address+size, depth, buf, errno, ret); | |
| address += size; | |
| } | |
| } | |
| return 0; | |
| } |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| ~ ./a.out | |
| 000000010d89d000-000000010d89e000 (depth=0) /private/tmp/a.out (errno=0 ret=18) | |
| 000000010d89e000-000000010d89f000 (depth=0) /private/tmp/a.out (errno=0 ret=18) | |
| 000000010d89f000-000000010d8a0000 (depth=0) /private/tmp/a.out (errno=0 ret=18) | |
| 000000010d8a0000-000000010d8a2000 (depth=0) /usr/lib/dyld (errno=0 ret=13) | |
| 000000010d8a2000-000000010d8a3000 (depth=0) /usr/lib/dyld (errno=0 ret=13) | |
| 000000010d8a3000-000000010d8a4000 (depth=0) /usr/lib/dyld (errno=0 ret=13) | |
| 000000010d8a4000-000000010d8a5000 (depth=0) /usr/lib/dyld (errno=0 ret=13) | |
| 000000010d8a5000-000000010d8a9000 (depth=0) /usr/lib/dyld (errno=0 ret=13) | |
| 000000010d8a9000-000000010d8aa000 (depth=0) /usr/lib/dyld (errno=0 ret=13) | |
| 000000010d8aa000-000000010d8ab000 (depth=0) /usr/lib/dyld (errno=0 ret=13) | |
| 000000010d8ab000-000000010d8af000 (depth=0) /usr/lib/dyld (errno=0 ret=13) | |
| 000000010d8af000-000000010d8b0000 (depth=0) /usr/lib/dyld (errno=0 ret=13) | |
| 000000010d8b0000-000000010d8b1000 (depth=0) /usr/lib/dyld (errno=0 ret=13) | |
| 000000010ea88000-000000010ead3000 (depth=0) /usr/lib/dyld (errno=0 ret=13) | |
| 000000010ead3000-000000010ead6000 (depth=0) /usr/lib/dyld (errno=0 ret=13) | |
| 000000010ead6000-000000010eb0b000 (depth=0) /usr/lib/dyld (errno=0 ret=13) | |
| 000000010eb0b000-000000010eb26000 (depth=0) /usr/lib/dyld (errno=0 ret=13) | |
| 00007fe5a8c00000-00007fe5a8d00000 (depth=0) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fe5a9000000-00007fe5a9800000 (depth=0) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007ffede363000-00007ffee1b63000 (depth=0) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007ffee1b63000-00007ffee2363000 (depth=0) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| Recursing into 00007fff00000000-00007fff80000000 | |
| 00007fff49112000-00007fff50cdd000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fff50cdd000-00007fff50cde000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fff50cde000-00007fff78e6a000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffa9112000-00007fffa9200000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffa9200000-00007fffa9400000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffa9400000-00007fffa9600000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffa9600000-00007fffaa000000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffaa000000-00007fffaa200000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffaa200000-00007fffaa400000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffaa400000-00007fffaa800000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffaa800000-00007fffaaa00000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffaaa00000-00007fffaac00000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffaac00000-00007fffaae00000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffaae00000-00007fffab000000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffab000000-00007fffab200000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffab200000-00007fffab400000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffab400000-00007fffab600000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffab600000-00007fffab800000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffab800000-00007fffabe00000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffabe00000-00007fffac000000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffac000000-00007fffac200000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffac200000-00007fffac400000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffac400000-00007fffac600000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffac600000-00007fffac800000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffac800000-00007fffacc00000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffacc00000-00007ffface00000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007ffface00000-00007fffad000000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffad000000-00007fffad200000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffad200000-00007fffad400000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffad400000-00007fffad600000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffad600000-00007fffad800000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffad800000-00007fffada00000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffada00000-00007fffadc00000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffadc00000-00007fffade00000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffade00000-00007fffae000000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffae000000-00007fffae800000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffae800000-00007fffaec00000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffaec00000-00007fffaee00000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffaee00000-00007fffaf000000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffaf000000-00007fffaf200000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffaf200000-00007fffaf400000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffaf400000-00007fffaf600000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffaf600000-00007fffaf800000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffaf800000-00007fffafa00000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffafa00000-00007fffafc00000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffafc00000-00007fffafe00000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffafe00000-00007fffb0000000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffb0000000-00007fffb0400000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffb0400000-00007fffb0600000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffb0600000-00007fffb0800000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffb0800000-00007fffb0a00000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffb0a00000-00007fffb0c00000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffb0c00000-00007fffb0e00000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffb0e00000-00007fffb1000000 (depth=0) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| Recursing into 00007fffb1000000-00007fffb1200000 | |
| 00007fffb1000000-00007fffb1200000 (depth=1) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffb1200000-00007fffb1400000 (depth=0) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffb1400000-00007fffb1600000 (depth=0) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| 00007fffb1600000-00007fffb1617000 (depth=0) /private/var/db/dyld/dyld_shared_cache_x86_64h (errno=0 ret=46) | |
| Recursing into 00007fffb1617000-00007fffc0000000 | |
| 00007fffe9112000-00007ffff6252000 (depth=1) /private/var� (errno=22 ret=13) | |
| 00007fffffe00000-00007fffffe01000 (depth=1) /private/var (errno=22 ret=12) | |
| 00007fffffe98000-00007fffffe99000 (depth=1) /private/var (errno=22 ret=12) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment