+38/050/370-3627
+38/093/220-0872
+38/044/257-2444
Новости

CLion 2021.2 - релиз кроссплатформенной IDE для разработки на C и C++

CLion 2021.2 - релиз кроссплатформенной IDE для разработки на C и C++

CLion 2021.2 защитит ваш код от типичных проблем доступа к памяти в C++, автоматически загрузит настройки сборки приложения из CMake Build Presets, откроет проект с использованием GNU Autotools, поможет с профилированием на удаленном хосте и на WSL. Кроме того, значительно улучшен отладчик (самые крупные обновления ждут пользователей на Windows). А для тех, кто пока только изучает C++ или прототипирует новое приложение или библиотеку, мы добавили интеграцию с Cling — интерпретатором С++.

Новую версию можно скачать с сайта JetBrains и попробовать бесплатно в течение 30 дней. Если у вас есть активная подписка на CLion или All Products Pack, просто обновите версию на 2021.2. Напоминаем, что при покупке годовой подписки на любой продукт предоставляется резервная бессрочная лицензия.

Отладчик

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

Отладка на Windows

Для тех, кто разрабатывает на Windows с использованием тулчейна MSVC, мы написали собственный отладчик на базе LLDB (отладчик из Visual Studio мы не можем использовать по лицензионным соображениям). Этот же отладчик используется в раннем превью Rider for Unreal Engine (версии IDE JetBrains Rider для разработки игр под Unreal Engine), поэтому мы уделили особое внимание поддержке Natvis — формата для описания визуализации данных в отладчике. В новой версии CLion мы переписали поддержку Natvis, и теперь:

  • Доступны такие возможности настройки Natvis, как Inheritable attribute, спецификаторы формата и CustomListItems.

  • Встроенные визуализаторы получили однострочные цветные описания для всех структур, не покрытых Natvis.

  • Появилось представление [Raw View] для значений, сгенерированных Natvis.

  • Сортировка переменных в окне просмотра значений переменных не влияет на порядок членов класса — сортируются только сами переменные.

  • Исправлены проблемы с копированием переменных в окне отладчика.

  • Исправлено некорректное отображение std::tuple.

Отладка дампов памяти теперь также доступна пользователям Windows. В CLion же все предельно просто: запускаете действие Run | Open Core Dump, заполняете настройки новой конфигурации и вперед!

И еще одно важное улучшение для пользователей Windows — теперь для запуска и отладки приложений вместо внутренней консоли CLion можно использовать консоль cmd.exe.

Режим просмотра потоков FreeRTOS

При отладке приложений FreeRTOS в CLion теперь можно использовать режим просмотра со списками задач. Используйте окно отладчика, чтобы выбрать нужный поток и просматривать его переменные:

Общие улучшения в отладчике

Когда проект хранится локально (на той же машине, на которой запущен CLion), конфигурация для отладки проста и обычно не требует дополнительных настроек. Однако если вы будете отлаживать приложение, собранное на другой машине (например, на CI), CLion потребует указать соответствия путей в проекте, чтобы правильно определить точки останова в вашем коде. По умолчанию отладчик использует полные пути к файлам, но CLion 2021.2 позволяет использовать только имя файла:

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

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

Кстати, раз уж мы заговорили про отладку ассемблерного кода, CLion 2021.2 позволяет при пошаговой отладке добавлять и удалять точки останова прямо на строках инструкций. Как и с обычными точками останова, вы можете, например, указать, чтобы отладчик не останавливал исполнение, а лишь записал в лог какое-то значение или сообщение. Так же можно задать и другие настройки.

Если вы предпочитаете отладчик LLDB, то эта новость для вас: CLion теперь поставляется с версией LLDB 12. К тому же, LLDB теперь можно использовать для удаленной отладки произвольного исполняемого файла (раньше это работало только с GDB). Новая конфигурация для настройки такой отладки называется Remote Debug:

Чтобы при пошаговой отладке не открывать в редакторе слишком много вкладок, можно пользоваться вкладкой предварительного просмотра. В CLion 2021.2 она доступна во время сеансов отладки и позволяет просматривать файлы в одной вкладке друг за другом (раньше каждый файл открывался в новой вкладке).

Тут самое время припомнить нам назойливую проблему с полными (fully qualified) именами. После подстановки всех шаблонных параметров и пространств имен они порой оказываются такими длинными, что значение переменной, расположенное после типа, уже попросту не помещается в окно. Мы занимаемся реализацией логики сворачивания таких имен на стороне CLion. Надеемся, что эти изменения попадут в следующий релиз — 2021.3. Также мы планируем научить CLion показывать переменные типа указатель как массивы, улучшить шестнадцатеричное представление числовых переменных и многое другое. Кстати, если вас интересуют задачи по поддержке отладчиков в CLion, мы с радостью обсудим это с вами :) Вот тут есть актуальная вакансия.

Обновления для проектов CMake, Makefile и GNU Autotools

Мы включили в CLion 2021.2 одну из самых свежих версий CMake — 3.20. Главное ее нововведение — предустановки CMake Presets. Они позволяют сохранить настройки сборки проекта в универсальном формате и делиться ими, например, через систему контроля версий. И теперь CLion тоже поддерживает CMake Presets! Это значит, что вы можете загружать эти настройки и использовать их при работе с проектом.

Если в корневом каталоге вашего проекта лежит файл CMakePresets.json или CMakeUserPresets.json, CLion загрузит все указанные там предустановки для сборки Build Presets. Работает это пока только со второй версией CMake Presets. Предустановки появятся в CLion в виде выключенных по умолчанию профилей CMake в Settings/Preferences | Build, Execution, Deployment | CMake. Пока что редактировать их можно только в редакторе (как json-файлы).

Мы сняли небольшое видео (на английском) о том, как это работает:

Шаблоны новых проектов CMake теперь можно редактировать. То есть вы можете изменить содержимое корневого файла CMakeLists.txt, который автоматически генерируется мастером создания новых проектов:

Мы расширяем список проектов Makefile, поддерживаемых CLion. Теперь CLion умеет запускать шаг преконфигурации для создания файла Makefile и загружать с его помощью проект. Мы обновили список проектов, на котором мы тестируем нашу поддержку, добавив новые данные. Благодаря поддержке шага преконфигурации теперь CLion умеет загружать проекты GNU Autotools. 

Анализ времени жизни объекта

Опросы сообщества показывают, что больше всего неприятностей разработчикам на C++ причиняют проблемы безопасной работы с памятью. Не обошел их своим вниманием и комитет по стандартизации. Герб Саттер работает над предложением Lifetime safety, которое предполагает анализ времени жизни объектов на стадии компиляции. Когда именно это появится во всех основных компиляторах для C++, сказать сложно. А пока мы научили CLion 2021.2 выполнять такой анализ на этапе написания кода в редакторе. Встроенный статический анализатор в CLion умеет находить самые разные проблемы:

Также вы можете разметить свой код аннотациями GSL (подробное описание — в предложении Герба Саттера), и CLion будет использовать их при анализе:

Интерпретатор Cling

А вы знали, что для языка C++ есть интерактивный интерпретатор — Cling? Это такая своеобразная песочница, где можно прототипировать библиотеки или новые приложения либо просто изучать язык C++. Cling теперь интегрирован в CLion. Для пользователей это значит, что:

  • Сессия Cling запускается из IDE через вызов действия Tools | Cling | Start New Cling Session… и открывается в окне в CLion.

  • Можно работать дальше с самой сессией, а можно отправлять код в интерпретатор прямо из редактора, используя контекстные действия Отправить выделенный код в сессиюОтправить текущую строку в сессиюОтправить включенные заголовочные файлы в сессию.

Поддержка систем контроля версий и локальная история

Как и другие IDE на платформе IntelliJ, CLion 2021.2 предоставляет улучшенную поддержку систем контроля версий. Так в список действий, которые могут выполняться перед коммитом, мы добавили выполнение тестов. А для запуска действия Analyze code перед коммитом можно указать профиль анализатора кода.

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

Разные полезные мелочи

И еще немного важных, хоть и некрупных, улучшений:

  • Профилирование теперь работает для удаленных проектов и для проектов на WSL. В обоих случаях требуется задать путь к исполняемому файлу Perf в настройках Settings/Preferences | Build, Execution, Deployment | Dynamic Analysis Tools | Perf.

  • При удаленной разработке в Docker теперь можно не синхронизировать исходный код между локальной машиной и контейнером, если вы включили в Docker сопоставление томов (mapped volumes). Для этого достаточно в настройках Deployment выбрать тип соединения Local or mounted folder.

  • Постфиксное автодополнение теперь работает и для литералов.

  • Для работы с WSL больше не требуется SSH, ведь теперь CLion использует для работы с подсистемой специальный API WSL.

  • В CLion теперь видны все дистрибутивы WSL, которые выдает команда wsl -l -v — независимо от способа установки (из Microsoft Store или пользовательского дистрибутива).

Другие новости

Лучшая цена