c-cpp-cookies
  • Полезные материалы
    • About
  • Настройка окружения
    • Git
      • Git CLI
      • Git GUI
      • Git Web
      • Git в среде разработке
        • Visual Studio
        • Visual Studio Code
        • CLion
        • Qt Creator
    • Стандарты (они же ISO)
    • Qt about
    • IDE
      • Visual Studio Code
        • Код в Visual Studio Code
        • Разработка в Visual Studio Code
      • Visual Studio
        • Настройки Visual Studio и проектов
        • Код в Visual Studio
        • Visual Studio + GitHub
      • Qt + Qt Creator
        • Установка Qt и QtCreator
        • Примеры проектов на Qt
      • CLion
        • Настройки CLion
        • Код в CLion
        • CLion + GitHub
    • Компиляторы
      • Clang + Visual Studio
      • Clang + CLion
  • Best practices
    • Антипаттерны и способы улучшения кода
      • 0. Освобождение ресурсов
      • 1. Чтение данных из файла
      • 2. Открытие файлов
      • 3. Объявление переменных
      • 4. Выделение памяти
      • 5. Необдуманный код
      • 6. Глубокие if
      • 7. Длинные if
      • 9. Non-void функции
      • 10. Создание массивов
      • 11. Проверка формата файла
  • Сборка программы
    • Сборка программы
    • Системы сборки / Build systems
      • Проект и решение
      • Make
      • Ninja
      • CMake
      • MSBuild
    • Подключение внешних библиотек
    • Библиотеки
  • Отладка
    • Отладка / Debugging
    • Запуск программы
    • Точки останова / Breakpoints
      • Обычные точки останова / General breakpoint
      • Условные точки останова / Conditional breakpoint
      • Зависимые точки останова / Dependent breakpoint
      • Временные точки останова / Temporary breakpoint
      • Точки трассировки / Breakpoint actions и tracepoints
    • Стек вызовов / Call stack
    • Локальные переменные / Locals
    • Просмотр области памяти / Memory view
    • Исключения / Exceptions
  • Анализ
    • Поиск утечек памяти
    • Санитайзеры
  • Возможности IDE
    • Возможности IDE
    • Продвинутый текстовый редактор
    • Закладки / Bookmarks
    • Платформы / Platforms
    • Конфигурации сборки / Build configurations
    • Шаблонные проекты / Project templates
    • Терминал / Terminal
    • Сборка / Build
    • Запуск программы / Run program
    • Code style
    • Работа с Github Actions
  • Тестирование
    • Тестирование
    • Google test
      • Gtest в VS
      • Gtest в CLion
      • Gtest в VSCode
    • Покрытие кода (code coverage)
Powered by GitBook
On this page
  1. Отладка
  2. Точки останова / Breakpoints

Условные точки останова / Conditional breakpoint

PreviousОбычные точки останова / General breakpointNextЗависимые точки останова / Dependent breakpoint

Last updated 10 months ago

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

Условие может состоять из условного выражения (conditional expression), счётчика обращений (hit count) и фильтра (filter):

  • conditional expression может быть задано в двух режимах: is True (когда условие выполняется) и when changed (когда условие изменяет своё значение)

  • hit count можно использовать как счётчик события срабатывания точки останова

  • filter задаёт ограничения на точку останова, сделав ее срабатывание возможным лишь на определенных устройствах или в определенных процессах или потоках.

Настройка уже существующей точки останова: наведите указатель мыши на символ точки останова, щелкните значок Параметры, а затем в поле Condition введите Ваше условие.

Создать изначально условную точку останова:

  • Щелкните правой кнопкой мыши в крайнем левом поле рядом со строкой кода и выберите в контекстном меню пункт Вставить условную точку останова.

  • В поле введите условие, как Вы вводили при настройке выше.

Условные точки останова в CLion указываются в отдельном параметре настройки отдельного Breakpoint'а. Этот параметр используется для указания условия, которое проверяется каждый раз при достижении данной точки. Если условие оценивается как истинное, выполняются выбранные действия. В противном случае точка останова игнорируется.

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

По умолчанию, в CLion горячей клавишей для открытия окна настроек точек останова является CTRL + SHIFT + F8 - выберите нужный Breakpoint, поставьте галочку Condition и ниже пропишите условие.

Другой, альтернативный метод: создайте точку останову, нажмите на неё ПКМ и в поле Condition впишите Ваше условие.