Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
При отладке можно вручную переместить указатель выполнения, чтобы изменить следующую инструкцию, которая будет выполняться далее. Перемещение указателя полезно для таких ситуаций, как пропуск кода, содержащего известную ошибку, и является более расширенной функцией отладчика.
Изменение потока выполнения
При приостановке отладчика желтая стрелка в поле исходного кода или окно Дизассемблера помечает расположение инструкции, которая будет выполняться далее. Вы можете изменить следующую инструкцию, которая будет выполняться путем перемещения этой стрелки. Можно пропустить код или вернуться к предыдущей строке.
Если вы хотите изменить следующую инструкцию, которая будет выполняться, отладчик должен находиться в режиме останова. В исходном коде или окне дизассембли перетащите желтую стрелку в другую строку или щелкните правой кнопкой мыши строку, которую нужно выполнить далее, и нажмите кнопку "Задать следующую инструкцию".
Счетчик программы переходит непосредственно к новому адресу. Инструкции между старыми и новыми точками выполнения не выполняются. Но при перемещении точки выполнения обратно, промежуточные инструкции не удаляются.
Caution
- Перемещение следующей инструкции в другую функцию или область обычно приводит к повреждению стека вызовов, что приводит к ошибке среды выполнения или исключению. При попытке переместить следующую инструкцию в другую область отладчик дает предупреждение и возможность отменить операцию.
- В Visual Basic нельзя переместить следующую инструкцию в другую область или функцию.
- В собственном языке C++, если у вас включена проверка среды выполнения, установка следующей инструкции может вызвать исключение, когда выполнение достигает конца метода.
- Если включен Изменить и продолжить, установить следующую инструкцию не удается, если вы внесли изменения, которые Изменить и продолжить не может переназначить немедленно. Такая ситуация может произойти, например, если вы редактировали код в блоке catch. В этом случае сообщение об ошибке сообщает, что операция не поддерживается.
- В управляемом коде невозможно переместить следующую инструкцию, если:
- Следующая инструкция находится в другом методе, отличном от текущей инструкции.
- Отладка была запущена отладкой Just-In-Time.
- Выполняется очистка стека вызовов.
- Возникло исключение System.StackOverflowException или System.Threading.ThreadAbortException.