C#, режим "Изменить и продолжить": ошибка 4001
Обновлен: Ноябрь 2007
Изменение или удаление активного оператора, который выполняется в данный момент, приведет к завершению сеанса отладки при включенном режиме "Изменить и продолжить"
Editing or deleting an active statement which is being executed will prevent the debug session from continuing while Edit and Continue is enabled
Эта ошибка указывает на то, что предпринята попытка изменить или удалить активный оператор, т.е. оператор, на котором находится указатель выполнения. Режим "Изменить и продолжить" не поддерживает изменения активного оператора во время отладки.
Наиболее распространенной причиной появления этого сообщения является выход из функции в точку ее вызова. Отладчик возвращается в точку вызова метода, но не переходит к следующему оператору. Пока он этого не сделает, строку, из которой был вызван метод, редактировать нельзя. При попытке редактирования появится это сообщение.
Рассмотрим следующий пример:
class Program
{
static void Example()
{
System.Console.WriteLine("Example");
}
static void Main()
{
Example();
int a = 5;
}
}
Если установить точку останова на строке вызова метода Console.WriteLine, а затем запустить отладку приложения и выполнить пошаговый выход из метода Example, указатель выполнения останется на строке Example, и редактирование вызова будет невозможным.
Для отмены изменения выберите команду Отменить в меню Отладка, а затем переходите по шагам до тех пор, пока не перестанет быть активным оператор, который нужно отредактировать, либо используйте команду Задать следующий оператор для перемещения указателя.
-либо-
Остановите сеанс отладки, внесите изменения и начните новый сеанс отладки.
Поддерживаемые изменения кода (C#)