We have debugging infrastructure. For example:
Checkpoint/restart allows the state of a set of processes to be saved to persistent storage, then restarted at some future time -- quoting from Jonathan Corbet's 2010 Linux Kernel Summit report.
This is surely a very useful facility to have for reproducing failures, for example. But on the other hand it's questionable how it can help with debugging failures in GNU Hurd servers' interactions, as their state is typically spread between several processes.