Ошибка создания дампа Adplus - доступ запрещен
Я пытаюсь получить дамп для отладки некоторых проблем с памятью в процессах ASP.NET (Windows 2003 R2 SP2 x64):
adplus -hang -o f:\dumps -pn w3wp.exe -quiet
Есть девять w3wp.exe (все с разных сайтов). Каждый раз, когда я запускаю adplus, как указано выше, некоторые из дампов завершаются с этой ошибкой:
WriteFullMemory.Memory.Read(0x100ea0000, 0x10000) failed 0x80070005, ABORT.
Dump creation failed, Win32 error 0n5
"Access is denied."
Ошибка кажется случайной (или я должен сказать, что не могу найти причины), то есть иногда некоторые процессы сбрасываются нормально, а иногда они терпят неудачу с этой ошибкой. Вещи, которые я проверил:
- У меня есть полные права администратора
- На целевом жестком диске достаточно места
- Я отключил пинг и защиту от сбоев в IIS, чтобы IIS не убивал процессы во время дампинга adplus.
Что-нибудь еще, что я должен проверить? Кто-нибудь еще сталкивался с этой проблемой? Версия Adplus 7.01.002 (27.02.2009) (скачана пару дней назад из последней версии SDK)
2 ответа
Это из-за сбоя чтения недоступной памяти. Чтобы избежать этого, вы можете использовать что-то вроде cdb/windbg и использовать .dump /mA
Команда для создания полного дампа памяти.
.dump /mA
такой же как .dump /ma
за исключением того, что он проигнорирует сбой чтения недоступной памяти и продолжит создание минидампа.
Параметр /mA эквивалентен /ma, за исключением того, что он игнорирует любой сбой при чтении недоступной памяти и продолжает генерировать мини-дамп.
НТН
Неважно, если вы являетесь администратором, вам все равно нужно повысить привилегии.
ADPlus необходимо запускать из командной строки, работающей под учетной записью локального администратора с повышенными привилегиями. Если вы этого не сделаете, файл дампа может не быть создан.