Получить / proc /<pid>/ map info с помощью вызова sysctl под mac os

Я хотел использовать /proc/<pid>/map каталог для получения информации о виртуальной памяти процесса (особенно о его разделяемых библиотеках). Так как у Mac OS его нет, я пытаюсь найти другие способы. Один из них, кажется, sysctl позвоните, но я не совсем понимаю, как использовать его для этой цели. Есть ли примеры? Я знаю, что это также может быть сделано через некоторые mach_vm интерфейсные вызовы, но документация вполне залить. Может быть, вы знаете какие-либо другие способы чтения памяти процесса? Кстати, моя версия для Mac - Дарвин. Примечание: цель состоит в том, чтобы сделать это без использования каких-либо утилит или fork/exec звонки. Я тоже не хочу pseudofs быть установленным.

1 ответ

Решение

Подсистема виртуальной памяти macOS находится в унаследованной от Mach части ядра, поэтому эти API, безусловно, должны использоваться. Для проверки регионов посмотрите на mach_vm_region() (называется vm_region в оригинальном Mach- вы найдете больше документации для этого), для чтения памяти, используйте mach_vm_read(),

Вы также можете найти vmmap Утилита командной строки пригодится для исследования.

Другие вопросы по тегам