Точки останова не попадают во время отладки в VS10
Я работаю над проектом С# и Silverlight, и каждый раз в то время я сталкиваюсь с проблемой, когда мои точки останова больше не попадают, когда я отлаживаю. В редакторе они не становятся прозрачными, поэтому я знаю, что правильный код загружен и запущен.
Пример:
У меня есть Value
с геттером и сеттером, и он привязан к элементу управления. Когда я устанавливаю точку останова в сеттер, и я изменяю значение Value
из элемента управления, точка останова не получает удар.
Я знаю, что IIS reset исправляет эту проблему, но я хотел бы знать причину. Кто-нибудь еще находит подобное поведение? Если бы кто-нибудь мог указать мне в сторону возможной причины, которая была бы высоко оценена.
Ответы
Ответ 1
В Visual Studio 2010 есть опция:
- Инструменты → Параметры...
- Отладка → Общие сведения
- "Шаг над свойствами и операциями (только управляемый)"
Убедитесь, что это не проверено. Это предполагает, что точка останова является сплошной красной кружкой, указывая, что VS нашел для нее отладочные символы.
В качестве альтернативы эти элементы кода могут быть украшены одним из различных атрибутов отладки, а именно DebuggerStepThroughAttribute
, DebuggerNonUserCodeAttribute
и DebuggerHiddenAttribute
. Это может помешать отладчику перейти в метод, даже если точка останова.
Конечно, если оптимизированный код, который вы отлаживаете, может выглядеть как пропущенные строки. Я не уверен, что произойдет, если вы попытаетесь остановить точку, которая была оптимизирована.
Если точка останова полая (не сплошная красная), то Visual Studio, вероятно, не сможет найти отладочные символы для кода.
Если проблема с reset устраняет проблему, возможно, существуют различия между отлаживаемым кодом и исходным исходным файлом/символами, есть возможность сделать это менее строгим:
- Те же области параметров, что и выше.
- "Требовать, чтобы исходные файлы соответствовали оригинальной версии"
Ответ 2
Много раз я сталкиваюсь с этой проблемой, хотя в приложениях winforms. Так просто, что я делаю, перезапустите VS до очистки и перестройте решение. Тогда, если ничего не получается, просто удалите каталог bin и снова перестройте. Последняя опция, которую я делаю, - это перезагрузить компьютер.
Ответ 3
У меня была эта проблема в последнее время. Хотя я и не нашел точной причины, простым решением было проверить, работает ли приложение в режиме отладки (в отличие от выпуска) и очистить/перестроить решение.
Ответ 4
Нашел этот вопрос, пытаясь понять, почему мои собственные контрольные точки проекта не пострадали при попытке запустить код в vs2010
Решил его, посмотрев на свойства проекта в разделе Расширенные параметры компиляции и установил для параметра "Генерировать информацию отладки" на полный.
Возможно, стоит упомянуть, что я перехожу в код, который я хочу отлаживать, используя очень удобный TestDriven.net "Test With → Debugger", щелкнув правой кнопкой мыши на функции, которую я хочу отлаживать.