Memory 恒定内存转储

Memory 恒定内存转储,memory,dump,Memory,Dump,是否可以不断转储进程的内存以记录正在发生的每个更改?例如,如果我有一个修改数组内容的程序,我希望在修改之前知道该数组的内容。我想象一个程序可以保存初始内存,然后保存一个文件中的所有更改,我只需根据我知道的数组中修改过的内容搜索该文件。然后,我会在那一刻之前寻找特定内存位置的变化,并找到初始内容。 这样的程序存在吗?如果是,你会推荐什么计划 编辑:我用C++编写了一个程序,用PCAP捕获另一个进程的包,我想知道这些包是如何在程序中构建的。我正在使用Windows。请注意,内存内容的变化(或可能)比

是否可以不断转储进程的内存以记录正在发生的每个更改?例如,如果我有一个修改数组内容的程序,我希望在修改之前知道该数组的内容。我想象一个程序可以保存初始内存,然后保存一个文件中的所有更改,我只需根据我知道的数组中修改过的内容搜索该文件。然后,我会在那一刻之前寻找特定内存位置的变化,并找到初始内容。 这样的程序存在吗?如果是,你会推荐什么计划


<>编辑:我用C++编写了一个程序,用PCAP捕获另一个进程的包,我想知道这些包是如何在程序中构建的。我正在使用Windows。

请注意,内存内容的变化(或可能)比磁盘能够写入的速度快得多

另外,您的问题是特定于操作系统的。我猜你正在使用Linux

在所有情况下,都应尽早根据目标设计应用程序

也许你正在寻找。如果在Linux上考虑,

也许你在寻找某种机制。一种可能的方法是在程序中的某些点显式地保持应用程序的状态,这些点经常执行。或的持久性是一个困难的问题

您可能希望使用文本格式(如)来进行。您可能对数据库技术感兴趣,或者是关系SQL(例如or)或者是noSQL

持久性和检查点可能与算法有关(特别是复制GC)

一些语言实现能够持久化它们的整个堆。例如,在中,实现提供了

对于调试,您可能需要,或命令

请注意,如果您立即启动了您的进程并使子进程休眠或空闲,那么您将在该子进程中保留地址空间的快照


另外请阅读&

请解释您想要的具体应用程序。听起来您需要“动作回放”。