11
4
I usually work with a lot of instances of visual studio open to different projects, I was wondering if there is a way to snapshot/hibernate a running process to disk instead of closing it so that I can open it in the same state as it was quickly.
I have a ton of free disk space so wouldn't mind saving the entire process snapshot if it would save me the time in opening up the solution and waiting for the projects to load.
+1: Interesting idea! (Of course this is exactly what the virtual memory manager is trying to do for you automatically as and when required.) – Andy – 2010-06-11T15:24:32.080
2
FWIW, something like this ("unexec", based on a core dump) is traditionally part of the build process for Emacs on UNIX systems. See, for example, http://www.xemacs.org/Architecting-XEmacs/unexec.html
– coneslayer – 2010-06-11T15:31:00.3831That was specifically designed for emacs no? I wonder if a general purpose version could be written. – Andy – 2010-06-11T15:47:20.600
I have been searching for something like this for quite some time now. It would especially help if you wanted to pause a video encoder! – Breakthrough – 2010-06-11T17:31:17.280
1It seems like there is something like this for Linux linux.org/apps/AppId_2488.html However I think the problem is going to be open file handles, network sockets etc., which make this a non-trivial problem – Sijin – 2010-06-11T17:52:49.723
Yeah, restoring state appropriately would require knowing how the program works. For example, the process assumes that files it has locked won’t be modified from when it last checked them. If you kill the process so that the lock is no longer there and the file is then changed by something else then just restoring the handle and lock later will leave the program in an invalid state. Or, more simple to understand, a network socket got to the state it was in by conversing with a server. Your restore tool would have to know how the socket got to the state it’s in—might be impossible with e.g. TLS – binki – 2016-06-30T20:27:22.793