Точки останова не попадают во время отладки в 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", щелкнув правой кнопкой мыши на функции, которую я хочу отлаживать.