«Отладчик не может продолжить выполнение процесса». - PullRequest
13 голосов
/ 22 апреля 2011

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

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

enter image description here

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

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

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

  • Удаление плагина Reflector.
  • Отмена изменений в инструментах> Параметры> Окно отладки (снимите флажок для перехода в .NET Framework; снимите флажок с исходного сервера; установите флажок «Только мой код»).
  • Снимите флажок с «Исходный сервер Microsoft» в «Инструменты> Параметры> Отладка> Символы».окно.
  • Очистил кэш символов.

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

Ответы [ 9 ]

6 голосов
/ 21 февраля 2015

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

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

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

4 голосов
/ 07 ноября 2015

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

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

2 голосов
/ 04 декабря 2012

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

Я получил ответ от MSDN

1 голос
/ 23 декабря 2015

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

public bool ProdToDeve
{
   get { return ProdToDeve; } // <= missing underbar
   set { ProdToDeve = value; }
}
private bool _ProdToDeve = false;
1 голос
/ 22 января 2015

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

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

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

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

1 голос
/ 24 июля 2012

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

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

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

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

0 голосов
/ 12 июня 2019

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

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

0 голосов
/ 17 марта 2016

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

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

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

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

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

0 голосов
/ 20 января 2015

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...