CLion Nova Improvements, Debug Servers, OpenCV Image Viewer, and Zephyr West Debugging in CLion 2024.3
CLion 2024.3 is now available. This latest version of the JetBrains IDE for C and C++ includes the following key features and updates:
- Considerable improvements to the new language engine, CLion Nova.
- New Debug Servers configuration option.
- OpenCV image viewer.
- Ability to attach the debugger to an unstarted process.
- Debugging support for Zephyr West.
You can download CLion 2024.3 from the link below, via the Toolbox App, as a snap package if you’re using Ubuntu, or via a patch update from version 2024.2.
CLion Nova
In this release, our new language engine, CLion Nova, has received many important enhancements, including various language-specific and UI updates and several memory usage optimizations. We’ve also provided improved language support for modern C++ features.
Furthermore, to simplify the transition from CLion Classic to CLion Nova, we’ve added a toggle switch to both the Welcome screen and the Configuration menu.
Call for feedback on CLion Nova
The performance of CLion Nova now exceeds that of CLion Classic by an even greater margin. It’s smoother and more responsive, even on larger projects with hundreds of thousands of lines of code. That’s why we’ve added even more convenient ways for you to switch to CLion Nova.
However, we realize that some CLion Classic users are not ready to make the switch. Before we make CLion Nova the default engine for everyone, we would like to understand why some users prefer CLion Classic over CLion Nova. We would therefore appreciate it if you could share your feedback with us via Help | Submit Feedback… in the main IDE menu. We’ll review it carefully and try to resolve any critical issues that might prevent you from getting the most out of CLion Nova.
Memory usage improvements
Various improvements have vastly reduced CLion Nova’s memory usage and improved overall IDE performance. This is especially noticeable in large projects like Chromium ones.
For example, when we compared the memory usage of a Chromium project in CLion Nova 2024.2 with the same project in 2024.3, we saw that the IDE frontend used 51% less memory in the new version, and the IDE backend used 15% less. In short, this means the IDE has become more responsive and quicker to launch.
Call hierarchy
The function call hierarchy is now available when using CLion Nova in the Hierarchy tool window. It displays caller and callee hierarchies, visually representing how your functions interact and highlighting recursive calls with the corresponding icon.
To see the call hierarchy of a function, select it in the editor, and then click Navigate | Call Hierarchy from the main menu or use the shortcut ⌃⌥H (macOS) or Ctrl+Alt+H (Windows/Linux).
Predefined code styles from other projects
One of the most requested features we’ve added to this release is predefined code styles from other projects such as LLVM, GNU, Qt, and Google. This allows you to follow popular style guides for code structure rules, naming conventions, and other C++ areas where consistency is crucial. You can select your preferred style via Settings | Editor | Code Style | C/C++ | Set from….
Quick Definition support
The Quick Definition popup reveals where and how function, class, method, and other project symbols are defined. To call it, place the caret at a symbol in the editor and press ⌥Space (macOS) or Ctrl+Shift+| (Windows/Linux). You can also access it from the main menu via View | Quick Definition.
Embedded development
In this release, we have continued to expand CLion’s functionality to meet the diverse needs of embedded developers. Major updates for embedded development include debug servers, the ability to edit peripheral register values, and support for debugging West projects.
Debug servers experimental
We’ve introduced a new Debug Servers configuration option to simplify the setup of debugging for embedded and remote development. Located in Settings | Debugger, this dedicated section allows you to configure a debug server for the specific debug probe and use it to run or debug the build target.
To enable the configuration option, go to Settings | Advanced Settings | Debugger. You can select Edit Debug Servers from the main toolbar switcher or go to Settings | Debugger and open the Debug Servers dialog to configure a debug server.
Please be aware that this is an experimental feature, and it doesn’t work with PlatformIO yet. There is, however, a workaround. We encourage you to give it a try and share your feedback with us. Additionally, we are more than willing to arrange a brief call to understand your specific use cases and challenges better.
Debugging support for Zephyr West
Now, you can natively debug Zephyr projects that use the West meta-tool directly in CLion. When you import your Zephyr West project, a West run/debug configuration is automatically created in the Run/Debug Configurations switcher. You can also create a new run/debug configuration by selecting Run | Edit Configurations… from the main menu, clicking +, and selecting a West template:
Once configured, the new West run/debug configuration will be available in the Run/Debug Configurations switcher, and you can use it to run a debug session.
Editable peripheral register values
When debugging board peripherals like timers, communication interfaces, or GPIO ports, you can now instantly observe the results of your modifications by editing peripheral registers directly in the Peripherals pane.
You can test different configurations and device states on the go without recompiling your code or reloading your application or board.
Support for MISRA C++:2023 with CLion Nova
The MISRA guidelines are indispensable in the development of safety-critical systems. In this release, CLion’s static analysis toolset gets a significant portion of MISRA C++:2023 checks specifically targeted at C++17.
Debugger
CLion’s debugger has received several updates, the most important of which are an OpenCV image viewer, the ability to attach the debugger to an unstarted process, a formatted view for strings with structured data, and new bundled GDB (15.2) and LLDB (19.1.3) debuggers.
OpenCV image viewer
If you’re developing an ML application that uses the OpenCV library, you can now view a two-dimensional OpenCV array as an image while debugging the application. The image opens in a separate dialog with multiple editing options.
The OpenCV image viewer simplifies image processing inspection during application debugging. It’s also more convenient than alternative methods like saving an image to the hard drive or writing extra code to display it in a popup window.
Ability to attach the debugger to an unstarted process
Attaching the debugger to an unstarted local process is helpful when one part of your project is written in C++ and runs in CLion, while another is written in another language and runs in an external environment.
To try the feature:
- Set a breakpoint in your code.
- Select Run | Attach to an Unstarted Process… from the main menu.
- In the Command line field, add a pattern to find the process using wildcard characters:
*process_name*
. - Select the options you need.
- Select a debugger to attach.
- The debugger will start watching the process.
Once the external process starts, the debugger will attach to it. From there, the debugging session will continue as normal, with the program running and halting at the breakpoints you have set.
Formatted view for strings with JSON, XML, or HTML data
When debugging strings containing JSON, XML, or HTML data, or newline characters, you can view them formatted according to their code style directly in the debugger. This means you no longer need to copy unformatted values into a third-party tool for examination.
When debugging, click View next to a variable to see the structured or raw data in a separate window.
Other enhancements
This release also includes a number of user experience improvements, such as renewed cloud completion, a new project status widget, and an updated UI for the new terminal. We’ve also updated the CMake bundle to 3.30.5.
Renewed cloud completion powered by AI Assistant
The enhanced JetBrains AI Assistant plugin, featuring our internally trained LLM for C++, has significantly improved the speed and intelligence of CLion’s cloud code completion. AI Assistant now provides more usage scenarios, better suffix matching, and more correct code fragment completions.
One of the most significant enhancements is multiline code completion, which brings syntax highlighting and the ability to incrementally accept code suggestions.
Multiline code completion operates alongside standard code completion and Full Line Code Completion (the latter uses the local LLM and doesn’t require sending data to the cloud). It allows you to review and accept suggestions incrementally. Additionally, you can accept suggestions word by word using the shortcut ⌥→ on macOS or Ctrl+→ on Windows.
Project status widget
CLion’s project status notifications inform you of potential problems with your project configuration and offer ways to resolve them. In the previous CLion version, 2024.2, these notifications were displayed as yellow banners in the editor until the problem was resolved. They were irrelevant for some users – for example, those who just wanted to open a .cpp file from a third-party project to read the code. Having a notification banner hanging in the editor all the time is unnecessary in such cases.
For this release, we’ve moved project status notifications from the top of the editor to a new widget in the status bar.
Now, the notification that your file doesn’t belong to any project won’t appear until you hover over the ⚠️ icon. When you click on the icon, the widget will offer to fix the problem. This makes notifications less distracting while still keeping the information accessible to those who want it.
Updated UI for the new terminal
The new terminal’s interface has been redesigned to be more compact by reducing padding. This change maximizes screen space, making it easier to view and work with commands while keeping everything readable and clear.
Highlighted occurrences of selected text
By default, CLion now highlights every instance of the text you select in any file type, not just .c and .cpp files. This change makes it much simpler to track where your selected text appears throughout the file.
Try CLion and give us your feedback
We invite you to give CLion 2024.3 a try. If you have an active subscription, you can update it right away. New to CLion? Start your free 30-day trial today and dive into all its features and improvements immediately.
We value your feedback! If you have anything to share or if you run into any problems, please let us know through our issue tracker.
Your CLion team
JetBrains
The Drive to Develop