Как мне сделать снимок процесса, чтобы сохранить его состояние для дальнейшего расследования? Это возможно? - PullRequest
1 голос
/ 26 сентября 2008

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

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

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

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

EDIT: @ Джон Кейдж спросил:

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

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

Ответы [ 2 ]

2 голосов
/ 26 сентября 2008

Я думаю minidump - это то, что вы ищете.

Вы также можете использовать Userdump :

Дампер процесса пользовательского режима (userdump) сбрасывает любой работающий Win32 обрабатывает образ памяти (в том числе системные процессы, такие как csrss.exe, winlogon.exe, services.exe и т. д.) на муха, не подключая отладчик, или прекращение целевых процессов. Созданный файл дампа может быть проанализирован или отлажено с помощью стандарта инструменты отладки.

Эта статья показывает, как ее использовать.

1 голос
/ 26 сентября 2008

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...