При ответе на этот вопрос я заметил, что получил следующее диалоговое окно при попытке переместить "курсор", в то время как исключение обрабатывалось:
Не удалось установить следующий оператор на это местоположение. Попытка раскрутить стек вызовов перестала работать.
Раскручивание не возможно в следующих сценариях:
- Отладка была запущена через Своевременную отладку.
- Раскручивание происходит
- Система. StackOverflowException или Система. Поточная обработка. Исключение ThreadAbortException было выдано.
Что такое точно раскручивание?
Это я!
Нет, в данном контексте это обычно относится к процессу шага ("назад"/"вверх") через стек, удаляя последовательные кадры до тех пор, пока вы не вернетесь на желаемый уровень. Типичные стеки (конечно) очень линейны по своей структуре, кадры складываются друг за другом из конца в конец, так что на самом деле никакого буквального разматывания не происходит, но так это называется.
Эта страница Википедии имеет более детальную информацию.
.Здесь CLR "разматывает" стек, чтобы найти метод с блоком catch, который может обрабатывать исключение, т.е. если текущий метод не обрабатывает исключение, то он возвращается к методу, который вызвал его, чтобы узнать, будет ли он обрабатывать исключение. Это повторяется до тех пор, пока он не найдет метод для обработки исключения или не выполнит обработку ошибок на уровне приложения.
.] Это означает, что есть неисправный поток или, вероятно, это из-за того, что стек полон и не создается кадр стека, CLR в качестве опции UNWIND текущего контекста в этой ситуации.[
]