Как мне сделать снимок процесса, чтобы сохранить его состояние для будущих исследований? Это возможно?

Возможно ли это, я не знаю, но это было бы очень полезно!

У меня есть процесс, который периодически дает сбой (работает в Windows 2000). Затем у меня есть только один шанс отреагировать на это, прежде чем мне придется перезапустить его и мучительно ждать, пока он снова не выйдет из строя. Я не писал процесс, поэтому у меня нет исходного кода для отладки. Неудача выглядит случайной.

С помощью моментального снимка процесса я мог повторно и быстро протестировать реакцию на сбой.

Я думал о запуске внутри виртуальной машины, но в данном случае это невозможно.

РЕДАКТИРОВАТЬ: @Jon Cage спросил:

Когда вы говорите о моментальном снимке, вы имеете в виду захват процесса, когда он вот-вот выйдет из строя (включая память, состояние программы и т. д. и т. д.) ... а затем несколько раз воспроизводить его последние несколько секунд, чтобы увидеть, какое влияние он оказывает на какой-либо другой компонент?

Это именно то, что я имею в виду!


person Umber Ferrule    schedule 26.09.2008    source источник
comment
какой язык программирования вы используете?   -  person Brian R. Bondy    schedule 26.09.2008
comment
Когда вы говорите о моментальном снимке, вы имеете в виду захват процесса, когда он вот-вот выйдет из строя (включая память, состояние программы и т. д. и т. д.) ... а затем несколько раз воспроизводить его последние несколько секунд, чтобы увидеть, какое влияние он оказывает на какой-либо другой компонент?   -  person Jon Cage    schedule 26.09.2008
comment
Когда он терпит неудачу, он завершает работу, выдает исключение, BSOD;) и т. д.?   -  person mattlant    schedule 26.09.2008


Ответы (2)



Лучше всего запустить процесс в отладчике (я предпочитаю OllyDbg). Процесс приостановится при возникновении исключения, и вы сможете попытаться выяснить, что произошло незадолго до этого.

Это требует некоторого понимания ассемблера и не позволяет создать моментальный снимок процесса для последующего анализа. Для этого вам нужно будет написать свой собственный отладчик - теоретически это должно быть возможно.

person Treb    schedule 26.09.2008