Як встановити умовні точки перерви у Visual Studio?


133

Чи є простий спосіб встановити умовні точки перерви у Visual Studio?

Якщо я хочу досягти точки розриву лише тоді, коли значення змінної стає чимось, як це зробити?


11
Зауважте, що видання Express не має цієї функції.
Олексій Левенков

1
Я використовую Express 2015, і він має можливість умовних
проривів

1
Видання громади 2017 року також має умовні точки
прориву

Відповіді:


174

Встановіть точку розриву, як зазвичай. Клацніть правою кнопкою миші. Клацніть Умова.


1
У VS 2015 вам потрібно навести курсор миші на точку розриву та натиснути значок шестірні, щоб встановити умови
mark.monteiro

Ви маєте на увазі, клацніть правою кнопкою миші, встановіть умову, отримайте помилку "Умова про помилку".
Toby Caulk

1
Відповідь також повинна містити синтаксис умовних висловлювань або інформаційне посилання.
Андрій

50

Коли ви використовуєте Express Edition, ви можете спробувати це:

#if DEBUG
    if( fooVariable == true )
        System.Diagnostics.Debugger.Break();
#endif

якщо заява гарантує, що у випуску версії зламаної точки не буде присутній.


3
Це має велику перевагу продуктивності / економії часу. Я повторював кожен потенційний int 'id' у моїй програмі (всього близько 3,5 мільйонів), яка займає лише пару секунд. Я намагався використати умовну точку розриву, але оскільки вона не була в умовному відгалуженні, вона сповільнила швидкість виконання до тієї точки, коли через кілька хвилин я просто припинив би сеанс налагодження. Використання складеної точки перерви зробило це миттєво.
Сендвіч із

35

Visual Studio надає безліч варіантів умовних точок перерви:

Щоб встановити будь-який із вас

  1. Встановіть точку розриву.
  2. Клацніть правою кнопкою миші на точці розриву, і в спливаючому меню виберіть варіант, який підходить вам.

Ці варіанти такі:

  • Ви можете встановити умову на основі виразу коду, який ви надаєте (виберіть Умова у спливаючому меню). Наприклад, ви можете вказати той foo == 8чи інший вираз.
  • Ви можете зробити тригери точок перерви після того, як вони потрапили певну кількість разів. ( у спливаючому меню виберіть кількість переходів). Це цікавий варіант, з яким можна грати, оскільки ви насправді не обмежуєтесь певним рахунком хітів, але у вас є варіанти і для кількох інших сценаріїв. Я залишу це для вивчення можливостей.
  • Ви можете встановити фільтри для ідентифікатора процесу, ідентифікатора потоку та імені машини (виберіть Фільтр у спливаючому меню)

16

Ще один спосіб зробити це (або якщо ви використовуєте експрес), додайте умову в код:

if(yourCondition)
{
    System.Diagnostics.Debugger.Break();
}

9
  1. Встановіть точку розриву на лінії
  2. Клацніть правою клавішею на червоному кулі
  3. Вибрали умовну точку розриву
  4. Умова налаштування

8

Написання фактичного стану може бути складною частиною, тому я схильний

  1. Встановіть звичайну точку розриву .
  2. Запустіть код, поки точка розриву не потрапила вперше.
  3. Використовуйте негайне вікно (налагодження> Windows> негайне), щоб перевірити своє вираження .
  4. Клацніть правою кнопкою миші точку розриву, клацніть Стан та вставте свій вираз .

Переваги використання негайного вікна:

  • У ньому є IntelliSense .
  • Ви можете бути впевнені, що змінні в виразі знаходяться в області застосування при оцінці виразу.
  • Ви можете бути впевнені, що ваш вираз повертає справжнє чи хибне .

Цей приклад порушується, коли код посилається на таблицю з назвою "Налаштування":

table.GetTableName().Contains("Setting")

5

Створіть точку розриву, як зазвичай, клацніть правою кнопкою миші червону крапку та виберіть "умова".


4
  1. Встановіть точку розриву, як зазвичай
  2. Клацніть правою кнопкою миші на точці розриву та виберіть Умова
  3. Ви побачите діалогове вікно із написом "Умова перерви"
  4. Введіть умову в поле, наприклад, "i == 5"

Точка розриву потрапить лише тоді, коли мені 5.


4
  1. Встановіть точку розриву, як зазвичай.
  2. Клацніть правою кнопкою миші на маркері точки розриву
  3. Натисніть "Умова ..."
  4. Напишіть умову, ви можете використовувати імена змінних
  5. Виберіть "Правда" або "Змінилося"

4

У Visual Studio 6.0

Alt+ F9!!!


1
-1) Це не працює в VS 2012 2) На це питання вже є безліч інших (кращих) відповідей і 3) кого на Землі хвилює VS 6.0 (випущений у 1998 році)? 4) Навіть якщо когось хвилює VS 6, питання позначено тегом .Net, який не мав підтримки до наступної версії VS (Visual Studio .Net)
Тім Медора

7
Ну, інші відповіді не працюють на VS 6.0. Тому я розмістив рішення.
Vorac

1

Встановіть так, breakpointяк ви робите зазвичай, клацніть правою кнопкою миші точку перерви та виберіть condionопцію та встановіть свою умову.


1

Створіть умовну точку розриву функції:

  1. У вікні Точки розриву натисніть кнопку Створити, щоб створити нову точку розриву.

  2. На вкладці Функція введіть Зворотний для функції. Введіть 1 для рядка, введіть 1 для символу, а потім встановіть мову на основну.

  3. Клацніть Стан та переконайтесь, що встановлено прапорець Стан. Введіть instr.length > 0для Condition, переконайтесь, що вибрано параметр true, і натисніть кнопку OK.

  4. У діалоговому вікні Нова точка зупинки натисніть кнопку ОК.

  5. У меню Налагодження натисніть кнопку Пуск.


0

Якщо ви прийшли з Google, ця відповідь може бути тим, що ви шукаєте.

  1. Клацніть Налагодження> Нова точка розриву> Точка переривання функції введіть тут опис зображення

  2. там вибирають умовну точку розриву.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.