有些应用程序不会在磁盘上写入缓存文件,而是直接写入 RAM,因此您无法备份、分析或对其执行任何操作。
我如何检索(即保存到磁盘)它们在 RAM 中缓存的文件?
我将采用任何方法:实用程序、脚本、终端命令…(我运行的是 OS X 10.6.8)
答案1
答案2
我不确定你在要求什么(因为程序不需要——通常只是不— 以与存储在磁盘上相同的方式表示它们在内存中处理的数据。内存中的数据被组织起来以方便处理,磁盘上的数据(文件)针对互操作性、存储大小或其他原因进行了优化;在加载或写入文件时,它们会从一种形式转换为另一种形式。即使它们很相似,也可能另一种方式:文件只是写入磁盘的内存内容,不可读。
本书网站Mac OS X 内部原理 提供有关如何转储正在运行的进程核心的描述和程序,即将与特定进程相关的主内存写入磁盘。
如果您想使用 Apple 的开发工具在 OS X Lion 上进行编译,请从中删除-arch <name>
参数。gcc
Makefile
然后您可以运行sudo ./gcore <pid>
,<pid>
如下所示活动监视器. 打开生成的转储文件(例如,在十六进制编辑器中)进行查看。在我的系统上,一个相当简单的过程,例如计算器生成大小约为 450MB 的文件。