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