В зависимости от ваших требований и ОС вы можете попробовать принудительно создать core dump
Я никогда не пытался на самом деле загрузить резервную копию основной программы, кроме как в gdb. Кажется, что любые файлы, которые вы открыли или любое другое состояние, которого нет в памяти ваших программ, будут потеряны, как указал острый зуб.
Другим подходом было бы просто сериализовать состояние, необходимое для записи на диск в вашей программе. Это отстой, но это, вероятно, самый надежный способ, если вы не довольны приостановкой выполнения программы. Это можно сделать с помощью библиотеки потоков вашей операционной системы. Или, как указал один плакат с вашей оболочкой.