Вопрос

Отвечая это вопрос Я заметил, что я получил следующее диалоговое окно при попытке переместить "курсор" во время обработки исключения:

Не удалось установить следующую инструкцию в это местоположение.Попытка размотать стек вызовов завершилась неудачей.

Разматывание невозможно в следующих сценариях:

  1. Отладка была начата с помощью отладки "Точно в срок".
  2. В процессе расслабления
  3. Система.Исключение StackOverflowException или System.Обработка потоков.Было вызвано исключение ThreadAbortException.

Что именно представляет собой размотать?

Это было полезно?

Решение

Это я!

Нет, в данном контексте это обычно относится к процессу пошагового перемещения ("назад" / "вверх") по стеку, удаляя последовательные кадры, пока вы не вернетесь к желаемому уровню.Типичные стеки (конечно) очень линейны по своей структуре, фреймы располагаются впритык друг к другу, так что на самом деле происходит не так уж много буквального разматывания, но именно так это и называется.

Эта страница в Википедии имеет более подробную информацию.

Другие советы

Разматывание - это просто перемещение обратно вверх по стеку.

Это когда среда CLR "разматывает" стек, чтобы найти метод с блоком catch, который может обрабатывать исключение, т. е.если текущий метод не обрабатывает исключение, он затем возвращается к методу, который его вызвал, чтобы посмотреть, обработает ли он.Это повторяется до тех пор, пока он либо не найдет метод для обработки исключения, либо не перейдет к обработке ошибок на уровне приложения.

Это означает, что существует неисправный поток или, возможно, это связано с тем, что стек заполнен и фрейм стека не создан, среда CLR as решает размотать текущий контекст в этой ситуации.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top