VS 2012 отладчик зависает, когда я пытаюсь быстро просматривать переменные
Сегодня я столкнулся с крайне раздражающей ошибкой. Я работаю небрежно в консольном приложении, над которым я работаю некоторое время, и без всякой причины, когда отладчик VS2012 начал висит, когда я быстро переключаю любые переменные. Он висит как 15-20 секунд, затем я получаю сообщение
Функция оценки отключена, потому что предыдущая оценка функции завершена
Если я ударил F10, отладчик отключился и процесс продолжится. Он падает почти на все переменные, которые неявно объявлены
Вот шаги, которые я предпринял до сих пор, чтобы решить эту проблему.
Шаги, которые я сделал:
- Перезапустить VS
- Перезагрузите компьютер.
- Удалены все точки останова
- Удаленные файлы ncb и suo
- Сервер Symbol не включен.
- Не используется сетевое расположение, пользовательские файлы локальны, файлы проекта
локальные.
- Только мой код включен/отключен
- Обеспечено Включить стекирование исходного кода .NET Framework НЕ включено
- Включен режим "Включить свойства"
- Обеспечено Включить поддержку исходного сервера.
- Начните визуальную студию с помощью /SafeMode для подавления расширений.
- Очищенное окно просмотра (в любом случае было пустым)
- Попробовал изменить целевую платформу на x64 и любой процессор.
- Отключение антивируса
- Сброс настроек по умолчанию для Visual Studio (devenv.exe/ResetSettings)
- Переустановить VS
Приложение, от которого я отлаживаю:
- Тип: Консольное приложение С#
- Целевая структура: 3.5
- Цель платформы: x86
Для моего здоровья, пожалуйста, помогите.
EDIT: У меня есть Visual Studio Update 3, версия 11.0.60610.01
EDIT: мои спецификации компьютера
- Windows 7 Ultimate 64 бит
- Dell Optiplex 960
- Intel Core i5-2400 3.1 Ghz
- ОЗУ 4 ГБ
EDIT: Я тестировал на двух машинах (один и тот же код) без визуального обновления студии 3, который работает, а тот, который этого не делает.
EDIT: создано упрощенное консольное приложение с теми же настройками, которое содержит только следующие строки кода. Когда я смотрю, у меня возникает проблема с зависанием, а затем она также отключается. Что может быть неправильно с моей машиной?
Это упрощенное приложение, которое зависает отладчиком
static void Main(string[] args)
{
var _AppLocation = System.Reflection.Assembly.GetEntryAssembly().Location;
_AppLocation = _AppLocation.Substring(0, (_AppLocation.Length -
(System.Reflection.Assembly.GetEntryAssembly().GetName().Name.Length + 5)));
var directoryInfo = new DirectoryInfo(_AppLocation);
Console.ReadyKey(); //I break here, check the directoryinfo
}
РЕДАКТИРОВАТЬ 10/3/13: это все еще не решено, переустановка всего (офис, фреймворк, vs) полностью не решила проблему. Это должна быть ошибка vs2012, связанная с os/hardware. Я открою билет в Microsoft и обновлю, если они узнают что-то полезное.
EDIT 10/30/13: эта проблема была воспроизведена на двух машинах с различной конфигурацией оборудования. Я все еще контактирую с Microsoft, чтобы найти проблему. Похоже, что-то связано с созданием/визуальной студией framework/windows.
РЕДАКТИРОВАТЬ 11/19/13: Я все еще контактирую с командой эскалации Microsoft VS, здесь журнал мониторинга процесса и авария сбоя в этой студии. http://sdrv.ms/1egpX4O
Ответы
Ответ 1
Решение найдено параллельно с командой Microsoft VS Escalation. После анализа аварийного дампа и монитора процесса кажется, что процесс отладки VS 2012 проверяет сертификат хранилища для сертификата Microsoft Root Authority.
Так как оба компьютера, где в защищенной среде нет Интернета, оба они никогда не подключались в сети. Таким образом, они никогда не загружали Microsoft CA. Поскольку ЦС отсутствовал в хранилище, он заставил отладчика зависать и разбиваться на целевую структуру 3.5 специально.
Здесь исправление от команды Microsoft VS Team, чтобы обойти эту проверку при отладке: (Добавить в приложение app.config)
<configuration>
<runtime>
<generatePublisherEvidence enabled="false"/>
</runtime>
</configuration>
Проблема решена!
Ответ 2
Рассмотрите возможность использования средства Process Monitor для получения журнала операций с файлами, сетью, реестром и процессами во время вашего расследования. После захвата журнала вы можете просмотреть его и изучить возможную причину. Или вы можете отправить свой журнал мне, и я буду исследовать его на моей стороне.
http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx
Ответ 3
Я быстро провел исследование msdn и нашел следующее:
http://social.msdn.microsoft.com/Forums/vstudio/en-US/2055d3a0-56d9-4134-be23-09a91203e508/quickwatch-says-the-following-for-all-evaluations-function-evaluation-disabled-because-a-previous
Пожалуйста, попробуйте следующие рекомендации, чтобы проверить результат:
Нажмите "Инструменты" | Варианты.. | Отладка | Общие и снимите флажок "Включить оценка свойств и другие неявные функциональные вызовы". в (F11) код, чтобы найти основную причину "тайм-аута" Перезапустить отладки
Для получения дополнительной информации о ошибке оценки функции см. to: http://msdn.microsoft.com/en-us/library/ms234762(VS.80).aspx
Кроме того, мы могли бы получить дополнительные обходные методы оценки функций в блоге: http://blogs.msdn.com/greggm/archive/2005/11/18/494648.aspx
Также это может показаться странным, но у вас есть последнее обновление visual studio 2012?
Ответ 4
У меня возникли некоторые проблемы при запуске VS2012 с включенным UAC (User Account Control), а при установке некоторых расширений VisualStudio связывается с запущенным процессом w3p.exe, который работает как ожидается в рамках одного рабочего процесса. При наличии нескольких рабочих процессов студия не может отслеживать все независимые потоки и дроссели на данных, которые читаются как поврежденная память.
Ответ 5
Для себя у меня есть настройка сохранения, за исключением бит x64. Это всегда давало мне головную боль в программировании... Visual Stutio 32 бит до тех пор, пока я знаю, и, безусловно, есть причина, почему... В любом случае вы примеряете работу и не вешаете... Я не могу точно сказать, почему это произошло я уверен, что это 64-разрядная среда разработки.
Ответ 6
Я попробовал предоставленный код.
VS2012 Ultimate отлично работает в настройках отладки и настройках выпуска.
Я тестировал на двух разных ПК (рабочий стол и поверхность Pro)
Я также принудительно установил x86 вместо AnyCPU.
Вот мой вывод для тестового приложения:
http://beehiver.jurion.me/debug%20working.png
Я рекомендую полностью удалить все VS и ВСЕ версии .net и переустановить. Кажется, это проблема на вашем ноутбуке.
Ответ 7
У меня была та же проблема. Я полагаю, что это больше связано с конфигурацией оборудования. Недавно я обновил с 4 ГБ оперативной памяти до 8 ГБ с Vs 2012 и никогда не смог воспроизвести проблему. Я постоянно получал эту ошибку с более ранней конфигурацией оборудования.
Ответ 8
Эта проблема возникает, когда ваш код ожидает завершения некоторых предыдущих потоков, а также пытается удалить файл .suo, а затем перезапустить visual studio
Ответ 9
Это может быть связано с проблемами/ошибками Console.ReadKey().
http://blogs.microsoft.co.il/blogs/dorony/archive/2012/09/12/console-readkey-net-4-5-changes-may-deadlock-your-system.aspx
Сохраняются ли проблемы, если вы используете другой метод "приостановка?"
Ответ 10
Есть также некоторые недостатки VS. Например, если вы одновременно открываете два VS, когда вы пишете код, он иногда не получает ответа и показывает "Сохранение информации об автоматическом восстановлении"
Ответ 11
У меня была такая же проблема с Visual Studio 2015 (включая Update 1 и Update 2). Поэтому отправьте мое решение (которое я представил MS), если у кого-то еще есть эта проблема.
Всякий раз, когда я пытался использовать QuickWatch в Visual Studio 2015 Enterprise, он зависал бы среду разработки. Я не могу нажимать на что-либо, и я вынужден убить процесс через диспетчер задач. Кажется, что модальное окно открывается за ним.
Мой компьютер - HP Spectre, и у меня есть другой монитор, подключенный. Ive попробовал это на обоих мониторах.
Исправление:
- Переход на один монитор
- Сделать QuickWatch открытым (что он делает)
- Переместите его (что должно
сохранить положение окна)
- Закройте его
- Вставьте второй монитор в
- Теперь, когда я использую QuickWatch, он будет корректно открыт.