Создание дампа памяти процесса в Windows Server 2003? - PullRequest
8 голосов
/ 22 января 2010

Начиная с Windows Vista, у нас есть хорошая возможность создать дамп памяти процесса непосредственно из диспетчера задач. К сожалению, Windows Server 2003 пока не имеет этой опции :( Я нашел способы сделать полный системный дамп памяти, но это слишком много.

Есть ли способ вывести один процесс? Поскольку это рабочий сервер, я не хочу устанавливать какие-либо тяжелые инструменты или службы, работающие в фоновом режиме, в идеале я бы просто хотел вывести процесс, скопировать дамп на свой компьютер и отладить его там.

Ответы [ 4 ]

7 голосов
/ 22 января 2010

Вы можете присоединить к процессу отладчик Windows (ntsd или windbg), затем, когда вы хотите создать дамп процесса, вы можете использовать команду .dump:

0:000> .dump /ma myprocess-crash.dmp
Creating myprocess-crash.dmp - mini user dump
Dump successfully written
0:000>
5 голосов
/ 22 января 2010

Да, ищите userdump.exe. См. Эту статью KB .

2 голосов
/ 06 ноября 2012

Я думаю, что этот 'ответ' должен быть комментарием под ответом jeffamaphone, но у меня недостаточно репутации, чтобы комментировать.

Windows Server 2003 поставляется с ntsd, поэтому устанавливать его не нужно. Получите идентификатор процесса и подключите ntsd к процессу:

C:> ntsd -p 4356

Затем используйте ntsd для вывода процесса:

.dump /f c:\MyDumpFiles\foo.dmp
1 голос
/ 07 ноября 2012

Не забудьте о procdump от sysinternals.com (перенаправляет на MS, так как они купили их несколько лет назад). Очень маленькая загрузка.

...