Что может привести к зависанию Visual Studio 2008 во время отладки? - PullRequest
8 голосов
/ 23 мая 2009

У меня есть проект vb.net, который иногда при запуске в IDE неожиданно зависает. Обычно это не будет проблемой. Просто нажмите «пауза», посмотрите на текущие потоки и найдите тупик (или что-то еще).

Но сейчас я сталкиваюсь с ситуацией, когда программа не только зависает, но и пытается приостановить ее, что приводит к зависанию самой Visual Studio. Чтобы вернуть контроль, я должен убить процесс отлаживаемой программы, после чего Visual Studio возвращается к жизни и говорит, что не может приостановить выполнение. Это расстраивает, потому что уничтожение процесса означает потерю состояния программы (конечно), поэтому я не знаю, где зависание .

Так есть ли общие причины для такого поведения? Что я должен искать?

Ответы [ 5 ]

6 голосов
/ 29 мая 2009

, если ваша программа устанавливает глобальные хуки (которые связываются с приложением) - это может иметь место. Хук пытается связаться с вашим приложением (которое приостановлено отладчиком) и блокируется. И отладчик не может получить свои оконные сообщения: классический тупик между подключенным отладчиком (с подключаемым dll) и приложением для перехвата.

3 голосов
/ 24 мая 2009

Найти конкретное исправление для проблемы Visual Studio может быть сложно: http://social.msdn.microsoft.com/Search/en-US/?query=visual%20studio%202008%20hang&ac=3

Кроме того, не все исправления от Microsoft выпускаются непосредственно для общественности. Некоторые из них выдаются только тем клиентам, чьи системы сталкиваются с определенной проблемой. Поэтому вы должны связаться с Microsoft, чтобы получить исправление. Они делают это, чтобы ограничить потенциальную обратную сторону выпуска исправления, которое может сломать что-то еще. Поэтому, если ничего не помогает, позвоните им.

Вот некоторые другие вещи, которые мне нравится делать, когда Visual Studio начинает действовать:

  1. Удалить старые точки останова и посмотреть переменные.
  2. Если Visual Studio не запущена, удалите файл intellisense (.ncb)
  3. Очистите решение, а затем выполните перестройку всего кода.
0 голосов
/ 06 августа 2012

У меня только что была очень похожая проблема (VS не может прервать выполнение), с помощью Debug -> Delete all breakpoints решена проблема.

0 голосов
/ 23 мая 2009

Проверьте исправления и пакеты обновления. Я видел ошибку, связанную с зависаниями программирования и отладки .net. (VS зависает при отладке 32-битных приложений C ++ на 64-битной ОС: иногда.)

0 голосов
/ 23 мая 2009

Я бы проверил код отлаживаемой программы, я думаю, что в коде, который вы пытаетесь отлаживать, может быть бесконечный цикл или состояние гонки. Это имело место в прошлом, особенно на одноядерном ноутбуке, который у меня был. Можете ли вы дать какую-либо информацию о том, где, по вашему мнению, находится выполнение программы, когда вы пытаетесь сделать паузу?

...