Точки останова не получают удара при отладке в VS10 - PullRequest
11 голосов
/ 19 августа 2011

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

Примером может быть:

У меня есть Value с геттером и сеттером, и он связан с элементом управления. Когда я устанавливаю точку останова в сеттере и меняю значение Value с контроля, точка останова не получает удар.

Я знаю, что сброс IIS решает эту проблему, но я хотел бы знать причину. Кто-нибудь еще находит подобное поведение? Если кто-нибудь сможет указать мне в направлении возможной причины, которая будет высоко ценится.

Ответы [ 5 ]

9 голосов
/ 19 августа 2011

В Visual Studio 2010 есть опция:

  • Инструменты -> Параметры ...
  • Отладка -> Общее
  • "Переступить через свойства и операторы (только для управляемых)"

Убедитесь, что это не проверено. Предполагается, что точка останова представляет собой сплошной красный кружок, указывающий, что VS нашел для него символы отладки.

В качестве альтернативы, эти элементы кода могут быть украшены одним из различных атрибутов отладки, а именно DebuggerStepThroughAttribute, DebuggerNonUserCodeAttribute и DebuggerHiddenAttribute. Это может помешать отладчику войти в метод, даже если есть точка останова.

Конечно, если код, который вы отлаживаете, был оптимизирован, может показаться, что в нем отсутствуют строки. Я не уверен, что произойдет, если вы попытаетесь установить точку останова, которая была оптимизирована.

Если точка останова стала пустой (не сплошным красным), то, вероятно, Visual Studio не сможет найти символы отладки для кода.

Если сброс устраняет проблему , возможно, существуют различия между отлаживаемым кодом и исходным исходным файлом / символами, есть возможность сделать это менее строгим:

  • Та же область опций, что и выше.
  • «Требовать, чтобы исходные файлы точно соответствовали исходной версии»
1 голос
/ 19 августа 2011

Много раз я сталкивался с этой проблемой, хотя в приложениях winforms.Я просто перезагружаю VS перед чисткой и перестройкой решения.Затем, если ничего не получится, просто удалите каталог bin и дайте возможность пересобрать заново.Последний вариант, который я могу сделать, это перезагрузить компьютер.

0 голосов
/ 18 июля 2018

(как минимум) Две возможные причины : параметры Visual Studio, или параметры ReSharper

Пример : если я прервусь при каком-либо вызове, таком как Console.WriteLine(myVar.myProp), и я также сломаю внутри геттера myProp, точка останова внутри геттера будет полностью пропущена если следующие настройки все еще включены.

Для параметров Visual Studio: enter image description here

А для опций ReSharper: enter image description here

Итак, отключите их, чтобы подсказки данных не пропускали точки останова.

0 голосов
/ 25 октября 2013

Нашел этот вопрос, пытаясь понять, почему не были достигнуты точки останова моего собственного проекта при попытке запустить код в vs2010

Решил его, посмотрев свойства проекта в Дополнительные параметры компиляции и установив для параметра «Создать информацию отладки» значение «Полный».

Стоит упомянуть, что я прыгаю в код, который хочу отладить, используя очень удобный TestDriven.net «Test With -> Debugger», щелкнув правой кнопкой мыши на функции, которую я хочу отладить.

0 голосов
/ 19 августа 2011

У меня недавно была эта проблема. Хотя я не нашел точной причины, простым решением было проверить, работает ли приложение в режиме отладки (в отличие от выпуска), и очистить / пересобрать решение.

...