Подтвердить что ты не робот

Невозможно просмотреть значения переменных при отладке

Я пытаюсь отлаживать части текущего приложения, над которым я работаю, однако, когда я пытаюсь проверить значение свойства/переменной, я получаю ошибку:

Cannot evaluate expression because a thread is stopped at a point where garbage collection is impossible, possibly because the code is optimized.

Это обычный проект ASP.NET. В некоторых частях приложения я могу прекрасно просматривать свойства и переменные. Я не выяснил, какие отличия от блоков кода, которые я могу, и не могу видеть значения переменных в.

4b9b3361

Ответ 1

Проблема была документирована в блоге MSDN, как ограничение размера определенных типов в определенных ситуациях, более подробная информация в ссылке. Я считаю, что это 256 байт и/или общий размер/кол-во числа аргументов, переданных функции. Извините, что, похоже, нет быстрого исправления, но, надеюсь, запись в блоге MSDN поможет вам определить способ решения вашей проблемы.

Ответ 2

В этой статье Правила Funceval приводятся несколько причин, почему это может произойти. Если отладка включена и оптимизация отключена уже, похоже, что вы не можете справиться с этой проблемой.

Ответ 3

Вы создаете выпускные сборки? Попробуйте изменить конфигурацию на "debug" и посмотрите, улучшится ли она.

Ответ 4

Мы имеем ту же проблему в двух наших пользовательских элементах управления WinForm. В обоих случаях пользовательские элементы управления содержат много бизнес-логики (соответственно 2000 и 3000 строк кода) и используют несколько довольно тяжелых объектов (у них есть 30+ свойств, которые автоматически заполняются из базы данных при первом использовании одного из свойств доступны). Когда вы пытаетесь выполнить несколько (несколько сложных) методов проверки и сохранения, вы получаете это же сообщение при попытке получить доступ к свойствам объекта.

Мы пришли к выводу, что размер и сложность пользовательского управления в сочетании с размером и сложностью используемых объектов и доступом к условным базам данных становятся слишком большими для обработки отладчика и что мы должны, вероятно, просто сделать некоторые основные рефакторинг для перемещения большей части бизнес-логики из пользовательского элемента управления. Было бы интересно узнать, возникает ли ваша проблема из той же ситуации, и действительно ли делает этот рефакторинг на самом деле (разница в времени и/или смелости у нас не была).