C # — дамп памяти процесса в файл / воссоздать процесс из файла дампа

Просто любопытно, может кто-то знает способ

Возможно ли, если у вас открыт процесс (домен приложения), выгрузить всю память в файл, отправить его по проводам на рабочую станцию ​​ЛВС и воссоздать процесс, как это было на первом компьютере.

Предположения:

  • приложение существует на обоих компьютерах;
  • процесс не создает никаких локальных настроек / временных файлов;
  • ОС одинакова на обоих компьютерах;

0

Решение

Если вы хотите сделать это, вы должны убедиться, что у вас есть такая же среда для запуска «сброшенного» процесса. Некоторые из них:

  • Вы должны предоставить одинаковые дескрипторы с одинаковым состоянием (процесс, потоки, файл и т. Д.)

  • В новой среде должны быть выделены те же адреса памяти (включая выделения времени выполнения), что и в предыдущей

  • Все библиотеки должны быть инициализированы и приведены в одно и то же состояние.

  • Если у вас есть графический интерфейс, даже графический процессор должен быть в том же состоянии (вы должны предварительно загрузить все графические ресурсы и т. Д.)

  • И еще много вещей, о которых нужно позаботиться.

0

Другие решения

Вот что задействовано в Linux:

http://www.cs.iit.edu/~scs/psfiles/dsn08_dccs.pdf

Не совсем легко.

0

По вопросам рекламы [email protected]