Отладчик Visual Studio 2010 больше не останавливается на ошибках - PullRequest
3 голосов
/ 11 июля 2011

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

Это работает в других проектах, и я поставил Dim i as Integer = "A" в качестве первой строки, чтобы попытаться вызвать ошибку, но он просто выходит из подпрограммы в этой строке.

Есть идеи, как мне его вернуть?

Ответы [ 3 ]

11 голосов
/ 11 июля 2011

Во взаимодействии отладчика с 64-разрядной версией Windows 7 возникает ошибка, возникающая в событии Load. Windows исключает и поглощает исключение, отладчик никогда не получает возможность обнаружить, что оно было обработано. Единственное, что вы увидите, это уведомление «первый шанс» в окне «Вывод». Обработчик события Load немедленно прекратит работу, и ваша программа продолжит работу, как будто ничего не произошло, при условии, что она не обошла критическую часть кода инициализации. Эта ошибка существует уже давно и хорошо известна Microsoft, по-видимому, ее трудно исправить.

Вы можете обойти эту ошибку с помощью Project + Properties, вкладки Compile, прокрутки вниз, кнопки Advanced Compile Options. Измените настройку Target CPU на «AnyCPU». Еще один способ отловить это с помощью Debug + Exceptions, поставьте галочку в Throw на CLR Exceptions. Еще один обходной путь - поместить код инициализации в конструктор вместо OnLoad () или события Load. Вы действительно нуждаетесь в Load только тогда, когда вам нужно знать фактический размер окна.

Эта ошибка возникает только при отладке. Это не произойдет на компьютере вашего пользователя.


ОБНОВЛЕНИЕ: Я очень много рассказал об этой неудаче в этом посте .

7 голосов
/ 11 июля 2011

В разделе «Отладка -> Исключения» проверьте, чтобы были проверены исключения Общего языка во время выполнения.

3 голосов
/ 11 июля 2011

Был ли ваш файл .suo случайно удален (это файл, в котором хранится ваше личное состояние решения, ваши настройки, что развернуто / свернуто).Вы действительно заметите это, только если вдруг заметите, что вам пришлось нажать «свернуть все», потому что он забыл, он создаст это заново при открытии решения, но сделает это с настройками по умолчанию., нажмите CTRL + ALT + E и повторно отметьте флажки разрыва для исключений для CLR.

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