Вы больше не можете поймать System.StackOverflowException
Начиная с .Net 2.0 их можно поймать только при следующих обстоятельствах.
- CLR запускается вразмещенная среда, в которой хост специально разрешает обработку исключений StackOverflow
- Исключение stackoverflow генерируется кодом пользователя, а не из-за фактической ситуации переполнения стека (Ссылка)
Хотя ошибка говорит о том, что она произошла в ntdll.dll , она, скорее всего, вызвана вашим кодом.
Моими первыми шагами будет добавление или включение самого высокого уровня ведения журнала отладки в рабочей среде, чтобы вы могли попытаться определить, где это происходит и обстоятельства.
Второй идентификатор запускает отладку (присоединениеотладчик) и анализ этого класса метода, пока вы не найдете его.Скорее всего, из-за некоторой рекурсии, это первое место для поиска идентификатора.
Дополнительные ресурсы и ссылки
C # перехватывает исключение переполнения стека
Как найти источник StackOverflowException в моем приложении
Как отладить System.StackOverflowException без ссылки на исходный код?
Как предотвратить и / или обработать исключение StackOverflowException?
Как отладить исключение stackoverflow в .NET
Устранение неполадок исключений: System.StackOverflowException
StackOverflowException Class
В .NET Framework 1.0 и 1.1 вы можете перехватить объект StackOverflowException (дляНапример, для восстановления после неограниченной рекурсии).Начиная с .NET Framework 2.0, вы не можете перехватить объект StackOverflowException с помощью блока try / catch, и соответствующий процесс завершается по умолчанию.Следовательно, вы должны написать свой код для обнаружения и предотвращения переполнения стека.Например, если ваше приложение зависит от рекурсии, используйте счетчик или условие состояния для завершения рекурсивного цикла.