Я не уверен, что вы просите (поскольку программы не нуждаются - и обычно просто не представляют - представляют данные, которые они обрабатывают в памяти, так же, как они хранятся на диске. Данные в памяти организованы так, чтобы облегчить обработку, данные на диске (файлы) оптимизированы для обеспечения совместимости, размера хранилища или по какой-либо другой причине; и они преобразуются из одной формы в другую при загрузке или записи файлов. Даже если они похожи, возможно, все наоборот: файлы - это просто содержимое памяти, записанное на диск, и столь же нечитаемое.
На веб-сайте книги Mac OS X Internals содержится описание и программа о том, как выгрузить ядро запущенных процессов, т.е. записать основную память, связанную с конкретным процессом, на диск.
Если вы хотите скомпилировать его в OS X Lion, используя инструменты разработчика Apple, удалите -arch <name>
для gcc
из Makefile
.
Затем вы можете запустить sudo ./gcore <pid>
с <pid>
как показано, например, в Activity Monitor. Откройте полученный файл дампа, например, в шестнадцатеричном редакторе, чтобы просмотреть его. В моей системе довольно простой процесс, такой как Calculator, создает файлы размером около 450 МБ.