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

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

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

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

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

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

Можно отключить автоматический вызов возможности "Изменить и продолжить" при внесении изменений в код, которые не следует применять в текущем сеансе отладки. Можно также повторно включить автоматическую возможность "Изменить и продолжить".

Важно!

См. требуемые параметры сборки и другие сведения о совместимости признаков в руководстве по режиму "Изменить и продолжить" (С++) в Visual Studio 2015 с обновлением 3.

  1. Если вы работаете в сеансе отладки, остановите отладку (SHIFT+F5).

  2. Горячая перезагрузка "Открыть параметры>средств>отладки.NET>/C++".

  3. Выберите один или оба из следующих параметров, чтобы включить изменение и продолжить.

    • Enable Hot Reload and Edit and Continue when debugging (Включить Горячую перезагрузку и режим "Изменить и продолжить" при отладке). Включает Горячую перезагрузку при запуске с подключенным отладчиком (F5).

    • Enable Hot Reload when starting without debugging (Включить Горячую перезагрузку при запуске без отладки). Включает Горячую перезагрузку при запуске без подключенного отладчика (Ctrl+F5).

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

  1. Если вы работаете в сеансе отладки, остановите отладку (SHIFT+F5).

  2. В меню Средства выберите Параметры.

  3. В окне Параметры выберите папку Отладка > Общие.

  4. Для включения щелкните Разрешить режим "Изменить и продолжить". Для отключения снимите флажок.

  5. В группе Изменить и продолжить установите или снимите флажок Включить собственную операцию "Изменить и продолжить" .

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

Явное применение изменений кода

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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