"Отладчик не может продолжать выполнение этого процесса".

Я возился с настройками отладки VS 2010, пытаясь войти в работу .NET Framework. Ну, я не могу заставить его работать. Я также пробовал плагин Reflector VS и работал в какой-то момент.

Затем я случайно начал получать эту ошибку:

enter image description here

Этот только происходит, когда у меня есть точка останова на строке, которая вызывает IEnumerable<T>.ToList(). Если я попытаюсь перешагнуть или наступить на эту строку, где установлена ​​моя точка останова, я получаю это диалоговое окно с ошибкой, и мой сеанс отладки заканчивается.

Если переместить точку останова на строку ниже, отладчик пропустит вызов ToList()!

Я пробовал следующее безрезультатно:

  • Удаление плагина Reflector.
  • Отмена моих изменений в окне "Инструменты" > "Параметры" > "Отладка" (не отмечена опция для входа в .NET Framework; отключена опция исходного сервера; проверена только опция моего кода).
  • Неконтролируемый исходный сервер Microsoft в окне "Инструменты" > "Параметры" > "Отладка" > "Символы".
  • Очистил кеш символов.

Что происходит?

Ответ 1

Поскольку это было первое место, к которому я пришел, когда я искал ответ, я добавлю то, что узнал.

В моем случае у меня был отладчик, настроенный в решении для запуска нескольких проектов. По какой-то причине эта настройка была изменена Visual Studio, так что ни один проект не запускался. Исправление установки в решении сразу же решило проблему.

Проблема не была сложной задачей, но сообщение об ошибке было более чем раздражающим.

Ответ 2

Я только что нашел этот ответ. Все, что я сделал, это изменить мой проект запуска на другой и вернуться к нормальной работе.

Мой проект, возможно, где-то потерял эту настройку, и сброс ее снова сделал его доступным.

Ответ 3

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

У меня есть этот ответ из msdn

Ответ 4

Я страдал от одной и той же проблемы....

Я нашел одно решение, которое слышало необычное....

Отладчик не может продолжить выполнение процесса. Процесс был прерван При отладке кода шаг за шагом вы найдете строку, откуда перенаправляется ошибка. Если вы используете "ToString()" в любом месте этого файла, удалите это. Вместо этого вы можете использовать Value/Text. Он работает нормально. ............

Если вы не использовали ToString() в любом месте программы, перезагрузите копию проекта, полностью удалив.

Ответ 5

У меня была та же проблема. Я проследил его до класса (пошаговая отладка) и, наконец, к свойству (комментируя весь код, а затем поэтапно раскомментируя).

это свойство вернуло типизированный набор данных из таблицы. Dataset

private typedDataSet myDataSet
{
   return this.DataSet as typedDataSet;
}

это было в частичном классе DataTable. После того как я удалил это свойство, все пошло нормально.

Ответ 6

Я столкнулся с этой проблемой с ошибкой кода от копирования/вставки. Вместо того, чтобы получить/установить переменную частного члена, я сделал get/set сам по себе. Когда я ссылался на свойство в другом коде, отладчик завершался (2010):

public bool ProdToDeve
{
   get { return ProdToDeve; } // <= missing underbar
   set { ProdToDeve = value; }
}
private bool _ProdToDeve = false;

Ответ 7

Это сообщение также появится, когда вы пытаетесь отладить решение Xamarin, но у вас есть библиотека классов, выбранная в качестве запуска, вместо приложения appject.

Ответ 8

Мне пришло в голову, когда я делал следующее:

throw new Exception(timeout.TotalSeconds + " second(s)");

Это потому, что timeout.TotalSeconds.ToString(), который действительно является методом переопределения для объекта типа double, выбрасывает исключение Parameter not valid.

Наконец, для безопасности я в конечном итоге сделал следующее:

throw new Exception(System.Convert.ToString(timeout.TotalSeconds));

Ответ 9

Ну, как правило, это также сообщение об ошибке, которое вы можете получить в многопоточном контексте. Вкратце, это подразумевает параллелизм: убедитесь, что доступ к вашим ресурсам всегда защищен.

В моем случае я получил это сообщение об ошибке, когда забыл защитить доступ к ресурсам в некоторых местах моего кода. Чтобы решить эту проблему, мне просто нужно было украсить критические секции инструкцией lock (на соответствующем ресурсе). Я надеюсь, что это поможет тем, кто находится в этом контексте.