Редактирование кода в Visual Studio 2008 в режиме отладки - PullRequest
14 голосов
/ 06 мая 2010

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

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

Ответы [ 7 ]

6 голосов
/ 06 мая 2010

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

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

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

4 голосов
/ 06 мая 2010

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

РЕДАКТИРОВАТЬ : вам нужно переключиться на отладочную сборку.

1 голос
/ 01 февраля 2015
  1. Хватит запускать ваше приложение.
  2. Выберите Инструменты> Параметры> Отладка> Изменить и продолжить
  3. Отключить «Включить редактирование и продолжить».
1 голос
/ 04 октября 2010

Чтобы изменить значение переменной или установить свойство в режиме прерывания, перейдите в окно Immediate, установите новое значение и нажмите return, например,

strValue = "newValue"
Calendar1.Enabled = true

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

?strValue
?Calendar1.Enabled
0 голосов
/ 31 декабря 2013

Ниже ответ работал для меня:

http://whyiamright.wordpress.com/2007/12/20/aspnet-edit-and-continue-in-visual-studio-2005/

Второй пункт говорит - project-properties-web-> включить редактирование и продолжить.

Вот и все.

0 голосов
/ 01 июня 2010

Для решения этой проблемы я сделал следующее ...

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

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

затем ИНСТРУМЕНТЫ> ОПЦИИ> ОТЛАДКА> РЕДАКТИРОВАТЬ И ПРОДОЛЖИТЬ убедитесь, что выбрано edit & continue

тогда СТРОИТ> ЧИСТЫЕ РЕШЕНИЯ затем СТРОИТ> РЕБИЛЬНОЕ РЕШЕНИЕ

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

0 голосов
/ 06 мая 2010

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

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

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

  1. Установить точку останова
  2. При достижении этой точки останова щелкните стрелку в левом поле и перетащите ее на предыдущую строку
  3. Теперь вы можете добавить код для изменения обстоятельств (например, вы можете установить переменную на новое значение, добавить / удалить элементы из коллекции и т. Д.)

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

...