Поделиться через


Режим "Изменить и продолжить" (Visual C++)

В этой статье описаны процедуры работы в режиме "Изменить и продолжить" в проектах Visual C++. Сведения об ограничения режима "Изменить и продолжить" см. в разделе Поддерживаемые изменения и ограничения кода (C++).

Предупреждение

Параметр компилятора/Zo (Enhance Optimized Debugging), который появился в Visual Studio с обновлением 3, добавляет дополнительные сведения в PDB-файлы символов для двоичных файлов, скомпилированных без параметра /Od (Disable (Debug)).

/Zo отключает режим "Изменить и продолжить".См. Практическое руководство. Отладка оптимизированного кода

Содержание этой статьи

Включение и отключение автоматической активации режима "Изменить и продолжить"

Применение изменений кода явным образом

Остановка внесения изменений в код

Переустановки точки выполнения

Работа с устаревшим кодом

Включение и отключение автоматической активации режима "Изменить и продолжить"

Можно отключить автоматическую активацию режима "Изменить и продолжить" (командами Продолжить, Перейти и Шаг). Это можно сделать при внесении в код таких изменений, которые не должны быть применены в текущем сеансе отладки. Можно также вновь включить автоматическую активацию режима "Изменить и продолжить".

  1. В меню Отладка выберите Параметры и настройки.

  2. В диалоговом окне Параметры выберите категорию Изменить и продолжить.

  3. В группе Изменить и продолжить установите или снимите флажок Вызывать командами отладки.

    Примечание

    Кроме того, можно включить обязательный запрос подтверждения отладчиком перед применением изменений кода до выполнения команд отладки.Если нужны такие запросы, установите флажок Запрос.

Поскольку параметр Вызывать командами отладки является параметром меню "Сервис", его изменение повлияет на работу всех проектов, над которыми вы работаете. После изменения этого параметра не требуется производить повторную сборку приложения. Этот параметр можно изменять даже во время отладки. Если сборка приложения осуществляется из командной строки или из файла Makefile, а его отладка происходит в среде Visual C++, режим "Изменить и продолжить" можно по-прежнему использовать, если задать параметр /ZI.

К началу Содержание этой статьи

Применение изменений кода явным образом

В Visual C++ режим « Изменить и продолжить » может применять изменения кода двумя способами. Изменения кода могут быть применены неявно (при выборе команды выполнения) или явно (при использовании команды Применить изменения кода).

При явном применении изменений кода программа остается в режиме приостановки — выполнение не продолжается.

  • Для применения изменений кода явным образом в меню Отладка выберите Применить изменения кода.

К началу Содержание этой статьи

Остановка внесения изменений в код

Пока режим "Изменить и продолжить" находится в процессе внесения изменений в код, можно остановить эту операцию.

Для остановки внесения изменений в код:

  • В меню Отладка выберите команду Остановить применение изменений кода.

Этот пункт меню становится видимым только в процессе внесения изменений в код.

При выборе этого параметра никакие изменения в коде не фиксируются.

К началу Содержание этой статьи

Сброс точки выполнения

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

В Visual C++ о перемещении точки выполнения сообщает диалоговое окно. Прежде чем продолжить процесс отладки, необходимо проверить, что точка установлена правильно. Если это не так, необходимо использовать команду Задать следующий оператор. Дополнительные сведения см. в разделе Задание следующего оператора для выполнения.

К началу Содержание этой статьи

Работа с устаревшим кодом

В некоторых случаях операция "Изменить и продолжить" не может немедленно внести изменения в исполняемый код, но может внести их позже, если отладка будет продолжена. Это происходит при изменении функции, вызвавшей текущую выполняемую функцию, или при добавлении новых переменных объемом более 64 байт в функцию, которая находится в стеке вызовов.

В таких случаях отладчик продолжает выполнение исходного кода (называемого устаревшим кодом) до тех пор, пока эти изменения не вступят в силу. Устаревший код отображается в качестве временного исходного файла в отдельном окне исходного кода. Заголовок этого окна имеет вид наподобие enc25.tmp. При этом отредактированный исходный код остается в своем окне. При попытке редактирования устаревшего кода появляется предупреждение.

К началу Содержание этой статьи

См. также

Ссылки

Поддерживаемые изменения и ограничения кода (C++)