Самый быстрый способ взломать WinDbg для конкретного исключения? приложение .net 4.0 - PullRequest
1 голос
/ 05 октября 2010

Люди,

Отладка приложения .net 4.0 с помощью WinDbg (я новичок в WinDbg). Я пытаюсь сломаться, когда попадаю в переполнение стека: (NTSTATUS) 0xc00000fd - Невозможно создать новую защитную страницу для стека

К сожалению, это переполнение происходит около 2 часов в длительном процессе, и журналы говорят мне, что это не всегда происходит в одно и то же время / место. Если я присоединяюсь к процессу в отладчике, программа работает ужасно медленно ... это может занять несколько дней, чтобы исправить ошибку! Есть ли способ ускорить приложение / WinDbg, сказав WinDbg ТОЛЬКО прервать эту конкретную ошибку?

Ответы [ 2 ]

4 голосов
/ 05 октября 2010

Вы можете указать ADPLus создавать дампы процесса при возникновении исключений. У Джона Роббинса есть хорошая статья на эту тему . Затем вы можете использовать WinDbg для отладки файла (ов) дампа.

Имейте в виду, что оригинальный файл adplus.vbs был заменен файлом adplus.exe, который должен обеспечивать такую ​​же функциональность. По моему опыту, есть несколько проблем с новой реализацией, поэтому вам может понадобиться использовать старый скрипт, который по-прежнему доступен как adplus_old.vbs.

2 голосов
/ 10 октября 2010

Обычно присоединение отладчика не слишком сильно замедляет приложение (по сравнению с запуском приложения из отладчика, который установит кучу в режиме отладки).

Но по умолчанию отладчик будет отслеживатьсобытия (исключения и OutputDebugString), и в вашем случае их может быть слишком много.После подключения с помощью отладчика вы можете отключить обработку всех исключений.(Меню Отладка / Фильтры событий или команда sxi).Вы должны изменить обработку для всех событий (sxi * означает неизвестные события и не относится ко всем событиям).Вы также можете отключить все трассировки с помощью .outmask-0xFFFFFFFF.Затем включите только событие переполнения стека с sxe -c ".outmask /d" sov

...