Visual Studio отказывается забыть точки останова?


216

Visual Studio запоминает точки останова из предыдущих сессий отладки, и это здорово.

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

Это супер раздражает - есть ли настройка, чтобы он этого не делал?


24
Если вы удалите их после остановки отладчика, они останутся навсегда.
dlev

2
отчет об ошибках закрыт "как задумано" еще в 2009 году; объяснение от MS - connect.microsoft.com/VisualStudio/feedback/details/476744/…
zomf

1
Если у вас есть новая бета-версия VS 2015, вы можете отправить недовольство. Может быть, они будут слушать, если мы все сделаем это.
jsuddsjr

этот соединительный URL больше не работает - но я помню, что это было что-то с потоками - но насколько сложно добавить опцию щелчка правой кнопкой мыши «навсегда удалить точку останова» независимо от причины ???
Simon_Weaver

1
Почему они не просто предоставляют опцию «Удалить ожидающую точку останова» в контекстном меню точки останова? Это не ракетостроение.
Джон

Ответы:


131

тогда зайдите в DebugменюDelete All Breakpoints Ctrl+Shift+F9


39
Попробуйте выбрать элемент панели «Точки останова» на панели «Отладка». Это вызывает окно Breakpoints. Из этого окна вы можете просмотреть все точки останова в приложении. Здесь вы выбираете и очищаете точку останова, нажимая кнопку «Удалить» на панели инструментов на панели «Точки останова».
джемы

замечательно - горячая клавиша работает в экспресс-версии (у которой нет пункта в меню).
fun_vit

20
бесполезно, когда я хочу удалить только ОДНУ
точку

1
Это не решает проблему все время. Я использовал его, и точка останова все еще возвращается .. Это в раздражающем месте, где я не могу пройти через это, пока я не закончу нажимать кнопку «Продолжить» более 50 раз.
Dinerdo

1
@Dinerdo Вместо того, чтобы удалить его, вы можете попробовать отключить его или добавить условие, которое никогда не выполняется.
Том Блоджет

15

Проблема в том, что дочерние контрольные точки ваших контрольных точек сохраняются. Дочерние точки останова создаются (в определенных ситуациях) при установке точек останова во время сеанса отладки.

Безошибочный способ удаления точки останова (и дочерних элементов) - вручную найти ее в окне точки останова и удалить ее оттуда. (Выберите верхний узел записи, нажмитеDelete .)

Если вы используете (старую) версию Visual Studio, которая поддерживает макросы VBScript, вы можете запустить макрос, размещенный здесь (между сеансами отладки), чтобы удалить дочерние точки останова. Это сделает удаление точек останова, щелкнув по глифу, несколько более эффективным и предсказуемым, но это по-прежнему проблематично и неудобно.


12

Я изо всех сил пытался найти «Окно BreakPoints». Так вот быстрый способ открыть его - ctrl+ alt+B

введите описание изображения здесь


Или вы можете вручную перейти к «Debug-> Windows-> Breakpoints», чтобы открыть его.

введите описание изображения здесь


Или вы можете нажать ctrl+ shift+, F9чтобы удалить все точки останова одновременно!


9

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

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

Во время отладки отключите точку останова вместо ее удаления.

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

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

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

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


1
Если отключение работает, я не вижу, почему «связанные точки останова» против «ожидающих точек останова», как описано в статье выше (re: closed by design), являются непреодолимой проблемой.
ItsAllABadJoke

3
  • Начните сеанс отладки с минимальным количеством открытых файлов, так как во время отладки появятся нежелательные точки останова и содержащие файлы откроются на новых вкладках.
  • Завершите сеанс отладки и откройте окно точек останова (с панели инструментов отладки по какой-то причине его нет в меню просмотра).
  • Для каждого файла введите имя файла в области поиска окна точек останова и нажмите клавишу ввода, чтобы отфильтровать точки останова по файлу.
  • Затем вы можете нажать на каждую точку останова в окне, чтобы увидеть, где они находятся в коде, и удалить их, если хотите. Немного утомительно, но я нашел лучший способ избавиться от этих нежелательных точек останова ... Управление закладками и точками останова ... Вероятно, в последний раз эти функции были улучшены в прошлом веке ...

1

Большинство точек останова можно удалить во время сеанса отладки, но некоторые застряли (возможно, это ошибка в Visual Studio).

Если вы хотите удалить только точку останова, которая застряла, то используйте окна «Точки останова», найденные в меню отладки. Там вы, вероятно, увидите, что ваша точка останова существует несколько раз для одной и той же строки. Просто щелкните правой кнопкой мыши и удалите его.


0

Быстрый альтернативный ответ на этот старый вопрос, который просто поразил меня Visual Studio 2017.

Если возможно, просто скопируйте и вставьте код с точкой останова. Точка останова уходит с разрезом.



0

Я считаю это недостатком дизайна, очень расстраивающим и с которым нам пришлось долго жить. Мы поражаем его так часто, что это становится нормой. Решения, данные до сих пор, действительно обходят стороной.

Лучшим решением было бы собраться вместе и проголосовать за изменения в Visual Studio User Voice. Кажется, что это было зарегистрировано несколько раз, поэтому мы должны выбрать один, чтобы проголосовать.

https://visualstudio.uservoice.com/forums/121579-visual-studio-ide/suggestions/31123351-delete-disable-break-point-while-debugging-should


0

Если вы отлаживаете веб-приложение и устанавливаете точку останова в chrome, код VS будет учитывать эту точку останова и не позволит вам удалить ее. Другими словами, эффективные контрольные точки - это сумма контрольных точек, установленных в VS Code и в вашем chrome. И да, иногда легко забыть, что вы установили точку останова в chrome и заблудились, пытаясь понять, как удалить ее из кода VS.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.