Вопрос о том, как удалить точку останова Visual Studio - PullRequest
26 голосов
/ 03 апреля 2010

Допустим, у меня есть 10 контрольных точек, и я хочу очистить одну, но не другую 9.

Если я переключу точку останова на ту, которую хочу удалить, она воскреснет при следующем перезапуске приложения. Единственный способ, который я знаю, чтобы навсегда избавиться от него, это очистить ВСЕ точки останова, чего я бы не хотел делать, так как мне пришлось бы сбросить остальные 9.

Есть ли лучший способ в любой версии VS?

Ответы [ 6 ]

20 голосов
/ 03 апреля 2010

Состояние точки останова изменяется только временно, если вы измените его во время отладки, и это точка прерывания с несколькими связями.Это на самом деле особенность Visual Studio.См. последнее сообщение здесь .

Если вы не отлаживаете и удаляете его, он не вернется.В качестве альтернативы, как предлагали другие, вы можете удалить его навсегда, используя окно управления точкой останова.

10 голосов
/ 03 апреля 2010

При нажатии Ctrl + Alt + B откроется список всех точек останова в вашем решении, из которых вы можете вручную переключать или удалять их щелчком правой кнопки мыши.

3 голосов
/ 03 апреля 2010

Откройте окно точек останова (Отладка -> Windows -> Точки останова), выберите точку останова, которую вы хотите удалить, и нажмите клавишу удаления (или щелкните значок крестика).

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

1 голос
/ 16 декабря 2011

Если вы хотите удалить точку останова с помощью F9 или щелкнув по красному символу, эта точка останова должна быть бездетной. В противном случае точка останова сохранится через оставшиеся дочерние точки останова. (Дочерние точки останова могут образовываться при установке точек останова во время отладки.)
Вы можете проверить этот вопрос, « Отключить / удалить дочерние точки останова? », для макроса для удаления дочерних точек останова. Я думаю, что вы не должны вызывать макрос во время сеанса отладки, так как это может привести к тому, что ваши точки останова не будут достигнуты.

0 голосов
/ 11 марта 2016

Кросс-пост от https://stackoverflow.com/a/35935390/257470, но здесь он еще более актуален.

Здесь есть несколько ответов, но, по моему мнению, предлагаемые действия отвлекают от использования во время отладки (я не хочу терять фокус).

Мой поток с липкими точками останова во время точек останова выглядит следующим образом:

Во время отладки ОТКЛЮЧИТЬ точку останова вместо ее удаления.

Возможные способы отключения точки останова:

  • наведите курсор на курсор и щелкните значок двух циклов;
  • или использовать контекстное меню на нем;
  • или сочетание клавиш CTRL + F9.

Позже, во время разработки, я удаляю отключенную точку останова, когда вижу ее.

PS. Хорошей практикой также является периодическое удаление всех точек останова.

0 голосов
/ 17 апреля 2012

Следующий код можно использовать в качестве макроса для удаления точки останова в текущей выбранной строке. (Обратите внимание, что Visual Studio автоматически выбирает строку точки останова при ее нажатии.)

Sub RemoveBreakPoint()
    Dim debugger As EnvDTE.Debugger = DTE.Debugger
    Dim children As EnvDTE.Breakpoints
    Dim sel As Integer = DTE.ActiveDocument.Selection.ActivePoint.Line
    For Each bp As EnvDTE.Breakpoint In debugger.Breakpoints
        If bp.File <> DTE.ActiveDocument.FullName Then
            Continue For
        End If
        For Each bpc As EnvDTE.Breakpoint In bp.Children
            If bpc.FileLine = sel Then
                bp.Delete()
                Exit For
            End If
        Next
    Next
End Sub

Вы можете назначить ему комбинацию клавиш для быстрого доступа. (Инструменты> Параметры> Среда> Клавиатура.)

...