有没有办法将一个程序的所有运行状态保存起来?解决方案
有没有办法将一个程序的所有运行状态保存起来?
我是想知道,有没有办法将一个程序的所有运行状态保存起来,保存成文件。随后就可以将程序关掉,而且要求是能将这个文件重新导入内存,让程序还原回原来的状态。
虚拟机这个办法除外。
------解决方案--------------------
这是可以做到的,但需要操作系统的支持。
只要保存当时除LDT、私有页表外的进程映像的私有地址空间部分,以及几个通用寄存器、EIP、堆栈寄存器、EFLAGS等寄存器内容就行了,进程下次运行加载入内存、操作系统进行动态地址重定位及LDT、私有页表设定后,用上述内容覆盖进程映像的对应部分,就能从上次暂停的地方重新执行。
------解决方案--------------------
这个好像不能 只有操作系统级别的权限才可以读取整个进程空间数据以及创建自定义映像数据的进程,除非操作系统给你提供用户接口,貌似windows没有提供这样的接口吧.....
我是想知道,有没有办法将一个程序的所有运行状态保存起来,保存成文件。随后就可以将程序关掉,而且要求是能将这个文件重新导入内存,让程序还原回原来的状态。
虚拟机这个办法除外。
------解决方案--------------------
这是可以做到的,但需要操作系统的支持。
只要保存当时除LDT、私有页表外的进程映像的私有地址空间部分,以及几个通用寄存器、EIP、堆栈寄存器、EFLAGS等寄存器内容就行了,进程下次运行加载入内存、操作系统进行动态地址重定位及LDT、私有页表设定后,用上述内容覆盖进程映像的对应部分,就能从上次暂停的地方重新执行。
------解决方案--------------------
这个好像不能 只有操作系统级别的权限才可以读取整个进程空间数据以及创建自定义映像数据的进程,除非操作系统给你提供用户接口,貌似windows没有提供这样的接口吧.....