Редактирование кода в Visual Studio 2008 в режиме отладки

Мне любопытно узнать, есть ли способ редактировать код в С# VS 2008 прямо, когда он попал в точку останова, и я иду через код... Могу ли я изменить код (например, значение в переменной или если моя строка шагов будет удаляться в оператор if... могу ли я изменить инструкцию if... и т.д.)? До сих пор мне пришлось прекратить запуск VS, изменить код, затем нажать F5 и подождать, пока точка останова не будет снова удалена.

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

Ответы

Ответ 1

Есть несколько причин, по которым я знаю, почему Edit + Continue будет отключен в сборке Debug. В первую очередь это 64-разрядная операционная система, E + C работает только для 32-битного кода. Исправьте это с помощью Project + Properties, вкладкой Build, Platform Target = x86.

Это также опция, которая могла быть отключена. Инструменты + Опции, Отладка, Изменить и продолжить, Включить флажок.

Если это не помогает, расскажите нам немного больше о том, какой код вы отлаживаете, шаблон проекта, который вы выбрали при запуске проекта, как вы отделили отладчик, и трассировку стека, скопированную с Окно "Стек вызовов".

Ответ 2

Да, вы можете.
Это называется Изменить и продолжить.
Обратите внимание, что у него есть ограничения .

EDIT: вам нужно переключиться на сборку отладки.

Ответ 3

Чтобы изменить значение переменной или установить свойство в режиме разрыва, перейдите в окно "Немедленное", установите новое значение и нажмите "Возврат", например.

strValue = "newValue"
Calendar1.Enabled = true

Чтобы получить значение, вы можете просто распечатать его в окне e.e.

?strValue
?Calendar1.Enabled

Ответ 4

  • Прекратите выполнение своего приложения.
  • Перейдите в раздел Инструменты > Параметры > Отладкa > Изменить и продолжить
  • Отключить "Включить редактирование и продолжить".

Ответ 5

В ответ на этот вопрос:

Могу ли я изменить код (например, значение в переменной или если пошаговая строка вот-вот ударит, если выражение... могу ли я изменить if выражение.... и т.д.)?

Вы не можете поместить новое значение в переменную напрямую, но то, что вы можете сделать, это следующее:

  • Установить точку останова
  • Когда эта точка останова будет удалена, нажмите на стрелку в левом поле и перетащите ее в предыдущую строку.
  • Теперь вы можете добавить код для изменения обстоятельств (например, вы можете установить переменную в новое значение, добавить/удалить элементы из коллекции и т.д.).

См. другие ответы о включении редактирования и продолжения - в частности, убедитесь, что вы находитесь в режиме отладки.

Ответ 6

Чтобы решить эту проблему, я сделал следующее...

СТРОЙ > КОНФИГУРАЦИОННЫЙ МЕНЕДЖЕР

Конфигурация активного решения: DEBUG конфигурация контекста проекта: DEBUG

затем TOOLS > OPTIONS > DEBUGGING > EDIT и CONTINUE убедитесь, что выбрано редактирование и продолжение

затем СТРОЙ > ЧИСТАЯ РЕШЕНИЕ затем BUILD > REBUILD SOLUTION

Затем запустите debug, затем приостановите, затем ваш код должен быть доступен для редактирования