Выполнение и отладка

Конфигурации

Для каждого таргета CLion генерирует конфигурацию (для проектов CMake, Makefile и Gradle), которую можно собрать и запустить, а также позволяет настроить внешние инструменты, которые можно запустить до или после фазы сборки в отдельном диалоговом окне.

Конфигурации

Шаблоны конфигураций

Используйте шаблоны для создания конфигураций модульного тестирования, удаленной отладки и запуска приложений.

Конфигурация запуска

Вы можете поменять исполняемый файл для любой конфигурации или даже запретить выполнение, выбрав значение Not selected.

Для сборки проекта нажмите Ctrl+F9 и запустите выбранную конфигурацию с помощью Shift+F10.

Конфигурация отладки

Для отладки нажмите Shift+F9.

Для изучения кода во время отладки в CLion есть много полезных сочетаний клавиш, таких как Step over/into (F8/F7), Step out (Shift+F8) и Run to cursor (Alt+F9).

Проектно-независимые таргеты и конфигурации

custom_target

Функция Custom Build Targets позволяет добавлять таргеты, не зависящие от системы сборки, и задавать параметры внешних инструментов, которые будут использоваться при сборке и очистке проекта.

Для запуска и отладки независимых таргетов из CLion создайте соответствующую конфигурацию с помощью шаблона Custom Build Application (Run | Edit Configurations).

Пересборка отдельного файла

Чтобы ускорить циклы разработки для проектных моделей CMake и compilation database, используйте действие Recompile (Shift+Ctrl+F9). IDE пересоберет один файл, не вызывая пересборку всего проекта.

Типы конфигурации Debug/Release

При работе с CMake переключайтесь между профайлами CMake, используя переключатель конфигурации запуска на панели инструментов или во всплывающем окне Run (Shift+Alt+F10)/Debug (Shift+Alt+F9).

Ввод/вывод

CLion использует PTY в качестве устройства ввода/вывода, а это значит, даже в Windows вы можете ожидать поведение, подобное выполнению вашего проекта в терминале.

Отладка

CLion интегрируется с GDB на всех платформах и с LLDB на macOS и Linux.

Подключение к процессу

Подключение к процессу

CLion позволяет отлаживать процессы, выполняемые на том же или на удаленном компьютере, но не запущенные из IDE, путем подключения к ним с использованием идентификатора или имени процесса. При этом вы пользуетесь встроенным в CLion интерфейсом отладки.

Точки останова

Встроенный отладчик поможет досконально разобраться в коде. В CLion доступны несколько типов точек останова. Все точки останова можно просмотреть в специальном диалоговом окне (для вызова нажмите Ctrl+Shift+F8).

Точки останова
  • Line breakpoints — самый простой способ отладки. Чтобы поставить такую точку останова, просто кликните по левому полю редактора напротив строки.
  • Symbolic breakpoints срабатывают, когда начинает выполняться определенная функция. При указании нужной функции воспользуйтесь автодополнением.
  • Exception breakpoints останавливают выполнение программы при возникновении исключений.
Установка точки исполнения

Установка точки исполнения

Используйте новое действие Set Execution Point to Cursor, чтобы перемещать точку исполнения по коду в любом направлении прямо во время сеанса отладки, прерывать циклы и перезапускать их, выбирать другую ветвь в условном операторе if-else или выражении switch-case и даже полностью пропускать циклы. Нужно всего лишь перетащить стрелку на интересующую вас строку.

Окна Watches и Evaluations

Описание всех доступных переменных, включая содержимое STL-контейнеров, вы найдете на вкладке Variables в окне Debug. Там вы сможете просмотреть или даже изменить любое значение, не прерывая текущий сеанс отладки:

Вычисление выражения

Со вкладки GDB/LLDB вы можете перейти к GDB/LLDB-консоли, а с помощью панелей Frames и Watches подробно исследовать любую проблему. При выборе символа, значение которого необходимо отследить, работает автодополнение.

Кроме того, вы можете вычислить любое выражение во время сеанса отладки, просто нажав Alt+F8.

Просмотр значений переменных в редакторе

Просмотр значений переменных в редакторе

С помощью этой функции вы можете просматривать текущие значения переменных прямо в редакторе (рядом с объявлением переменной). Нет необходимости переключаться на вкладку Variables в окне Debug.

Disasm

Просмотр дизассемблированного кода

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

Теперь при пошаговой отладке ассемблерного кода можно добавлять или удалять точки останова на строках инструкций. Чтобы изменить конфигурацию этих точек останова с указанием адресов, заданную по умолчанию, воспользуйтесь контекстным меню.

Поддерживается как в случае GDB, так и LLDB.

Просмотр памяти Memory View

Просмотр памяти Memory View

В CLion можно посмотреть память по указателю в режиме отладки. Для вызова Memory View достаточно выбрать указатель в панели Variables во время отладки и нажать Ctrl+Enter.

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

Из Memory View можно перейти к определенному адресу в памяти. Введите шестнадцатеричное значение, представляющее адрес, переменную-указатель, или вызовите адрес (&) любой интересующей вас переменной.

Для известных символов работает автодополнение.

Отладка с привилегиями администратора

Отладка с привилегиями администратора

CLion может запускать и отлаживать ваше приложение с привилегиями администратора — просто выберите эту опцию в соответствующей конфигурации запуска/отладки. Это поддерживается для приложений CMake, Makefile, Gradle Native, Custom Build и CTest.

Отладка с дампами памяти

Отладка с дампами памяти

Действие Run | Open Core Dump… позволяет открыть дамп памяти упавшего процесса в CLion и отладить его. Можно анализировать информацию о фреймах, изучать значения переменных, просматривать состояние памяти и код на ассемблере, вычислять выражения и запускать команды из консоли отладчика.

Просмотр параллельных стеков

Просмотр параллельных стеков

При отладке многопоточных приложений приходится одновременно отслеживать несколько потоков. Представление Parallel Stacks — это отдельная вкладка в окне отладчика, где отображается информация из стека вызовов всех потоков. Это позволяет проверить пути вызова и точки выполнения для всех запущенных потоков.

Серверы символов на Windows

Библиотечных символов, которые вы используете при отладке, может не оказаться на вашей локальной машине. Если вы пользуетесь Windows, альтернативой локальному хранению символов отладки может стать сервер символов. Настроить такой сервер можно в разделе Settings | Build, Execution, Deployment | Debugger | Symbol Servers.

Подробнее