Gegen Ende des Jahres führen wir bei JetBrains die traditionellen „Steam Train“ -Versionen für unsere Desktop-Tools ein. Über einige davon ( WebStorm , DataGrip ) haben wir hier auf Habré bereits geschrieben. Und heute ist es Zeit, Sie über das Update unserer plattformübergreifenden Entwicklungsumgebung in C und C ++ - CLion 2020.3 zu informieren!
Kurz über das Wichtigste:
- Der Debugger kann jetzt Speicherabbilder untersuchen und die Konfiguration mit Administratorrechten ausführen. Und jetzt können Sie den Ausführungspunkt während einer Debugging-Sitzung in jede Richtung direkt durch den Code verschieben.
- Für Unit-Tests haben wir Unterstützung für CTest hinzugefügt, den Testläufer, der mit dem CMake-Designmodell geliefert wird.
- Qt Qt- UI, , Qt .
- , Makefile, CLion. CMake CMake.
- MISRA C 2012 MISRA C ++ 2008.
- Und viele weitere Verbesserungen für Start- und Debug-Konfigurationen, Unterstützung für Versionskontrollsysteme und für die Remote-Entwicklung. Verschiedene nette Verbesserungen der Benutzeroberfläche. Und… die lang erwartete Vorschau auf den neuen Dienst für gemeinsame Entwicklung und Paarprogrammierung.
Die neue Version kann von der Website heruntergeladen und 30 Tage lang kostenlos getestet werden. Wenn Sie ein aktives Abonnement für CLion oder All Products Pack haben, aktualisieren Sie einfach die Version auf 2020.3. Zur Erinnerung: Wenn Sie ein Jahresabonnement für ein Produkt erwerben, erhalten Sie eine unbefristete Backup-Lizenz .
Lassen Sie uns nun detaillierter auf die Innovationen und Verbesserungen in Version 2020.3 eingehen.
Debugger
Die Version 2020.3 markiert einen wichtigen Meilenstein in der Entwicklung von Debugger-Integrationen in CLion. Und das ist kein Zufall, denn diese Integration wird nicht von einem, sondern von mehreren Produkten des Unternehmens genutzt! CLion, ein IntelliJ Rust- Plugin, und eine frühe Vorschau der Rider for Unreal Engine- Spieleentwicklungsumgebung . Gemeinsam konnten wir viele wichtige neue Funktionen im Debugger implementieren.
Debuggen mit Speicherabbildern
Der Prozess endete abnormal, mit anderen Worten, ist er abgestürzt und hat einen Speicherauszug hinterlassen? Neue Aktion ausführen | Mit Open Core Dump, das für Linux und macOS verfügbar ist, können Sie einen Speicherauszug eines ausgefallenen Prozesses in CLion zum weiteren Debuggen öffnen:
Im Dialogfeld müssen Sie den Pfad zum Speicherauszug angeben, den Pfad zur Datei mit Debugging-Symbolen (z. B. ist die ausführbare Datei des Programms geeignet, wenn die Assembly aktiviert wurde im Debug-Modus), Pfadübereinstimmung (wenn die ausführbare Datei auf einem anderen Computer erstellt wurde). CLion erstellt dann eine Konfiguration zum Debuggen dieses Speicherauszugs, den Sie ausführen können.
Der Dialog kann eine Liste bereits erstellter Konfigurationen anzeigen. Konfigurationen können auch manuell über Ausführen | erstellt werden Konfigurationen bearbeiten. Während des Debuggens mit einem Speicherauszug können Sie Informationen zu Frames analysieren, Variablenwerte untersuchen, den Speicherstatus und den Assemblycode anzeigen, Ausdrücke auswerten und Befehle über die Debugger-Konsole ausführen. Gleichzeitig ist aus offensichtlichen Gründen das schrittweise Debuggen deaktiviert und das Prozessausgabefenster ist nicht verfügbar.
Unter den aktuellen Einschränkungen ist neben der Nichtverfügbarkeit der neuen Funktion auf der Windows-Plattform anzumerken, dass im Fall von LLDB die Datei mit den Debug-Symbolen noch nicht verwendet wird. Die Möglichkeiten zum Debuggen von auf einem anderen Computer gesammelten Dumps und zum Remote-Debuggen von Dumps sind sehr begrenzt ( CPP-22736 , CPP-22656 ).
Ausführen und Debuggen mit Administratorrechten
In den Start- und Debug-Konfigurationen dieser Version wurde ein neues Kontrollkästchen angezeigt, um die Konfiguration mit Administratorrechten zu starten. Die Anpassung wird für viele Arten von Konfigurationen unterstützt: CMake, Makefile, Gradle Native, Custom Build, CTest.
Um die neue Funktion in der Praxis bequemer nutzen zu können, haben wir einen speziellen Dämon geschrieben, der Sie auffordert, als Administrator angemeldet zu bleiben, wenn Sie solche Konfigurationen für einen ausgewählten Zeitraum ausführen:
Weitere Informationen zur Funktionsweise dieser neuen Funktion finden Sie hier (auf Englisch).
Ausführungspunkt setzen
Visual Studio-Benutzer sind möglicherweise mit einer nützlichen Funktion vertraut, z. B. dem Ändern des Ausführungspunkts während einer Debugging-Sitzung. Für alle anderen: Stellen Sie sich vor, Sie möchten die Ausführung einer gesamten Schleife überspringen, den Zweig einer bedingten Anweisung ändern und direkt während einer Debugging-Sitzung einige Schritte im Ablauf der Programmausführung zurückgehen. Jetzt verfügt CLion über eine neue Aktion. Setzen Sie hierfür den Ausführungspunkt auf Cursor , oder ordnen Sie den gelben Pfeil direkt im Editor manuell in die gewünschte Zeile um:
Nehmen Sie sich vor, dass eine solche Aktion das Programm beschädigen kann (z. B. wenn Sie den Befehl zum Initialisieren einer Variablen verpassen). Bei geschickter Verwendung können Sie Ihre Anwendung jedoch sehr effizient debuggen.
Interaktive Tipps
Nahezu alle unserer IntelliJ-basierten IDEs in Version 2020.3 verfügen über interaktive Tipps und integrierte Uhren. Noch vor 2020.3 konnten Sie während einer Debugging-Sitzung die Werte von Variablen direkt im Editor sehen. Jetzt sind diese Tipps interaktiv geworden - Sie können die Variable erweitern und den Wert aller ihrer Felder anzeigen: Sie
können auch einen beliebigen Ausdruck zum Zählen und Anzeigen direkt im Editor (neben der erforderlichen Codezeile) hinzufügen. Dies erweist sich als praktischer als gewöhnliche Uhren (die ständig im Debugger-Fenster angezeigt werden), wenn die im Ausdruck verwendeten Variablen nur an einer bestimmten Stelle im Code eine Bedeutung haben (z. B. lokale Variablen).
Möchten Sie die neuen Funktionen in Aktion sehen? Probieren Sie es selbst aus oder sehen Sie sich dieses Video von unserem Entwickler-Anwalt an:
Unit Testing
In Bezug auf Unit-Test-Frameworks unterstützt CLion Google Test, Catch (2), Boost.Test und doctest. Laut unserer Umfrage zum Entwicklungsökosystem 2020 verwenden 31% der C ++ - Entwickler Google Test. Daher haben wir uns die Zeit genommen, um die Darstellung der Google-Testlaufergebnisse in CLion zu verbessern:
- Wir haben sofort gelernt, wie man einen Testbaum erstellt, noch bevor alle Tests ausgeführt werden.
- Anzeige von Testparameterwerten gestartet (für parametrisierte Tests).
- Wir haben ein spezielles Symbol eingeführt, um deaktivierte (DEAKTIVIERTE) Tests im Baum zu markieren.
- Und vor allem haben sie den Prozess der Suche nach Tests im Projekt erheblich beschleunigt.
Unsere Benutzer (insbesondere hier auf Habré) haben aktiv darum gebeten, Unterstützung für CTest hinzuzufügen, einen Testläufer, der mit dem CMake-Projektmodell geliefert wird. Es war nicht sehr einfach, da CTest selbst ein Startwerkzeug und nicht nur ein anderes Framework ist und daher nicht gut in die vorhandene API passt. Aber wir haben es endlich geschafft! CLion findet jetzt automatisch CTest-Tests im Projekt, erstellt Start- und Debug-Konfigurationen für diese und erstellt einen Baum mit Testergebnissen. Sie können sogar Ihre Tests debuggen. Dadurch führt CLion den Test aus, nicht den ctest-Prozess.
In Bezug auf Einschränkungen ist zu beachten, dass CLion CTest 3.14 und höher unterstützt. Wenn ein Testblock aus einem bereits unterstützten Framework (Google Test, Catch (2), Boost.Test und doctest) als CTest-Test ausgeführt wird, enthält ein solcher Block einen Eintrag im Ergebnisbaum (dh er entspricht einem Test).
Ein traditionelles Video von Phil Nash über Verbesserungen beim Testen von Einheiten:
Qt-Projekte
Wir sehen, dass CLion häufig Projekte mit dem Qt-Framework schreibt. Obwohl wir nicht vorhaben, einen eigenen Interface-Designer zu erstellen oder das qmake-Projektmodell zu unterstützen, haben wir uns dennoch entschlossen, etwas zu tun, um die Benutzererfahrung in CLion in diese Richtung zu verbessern.
UI-Projekt- und Klassenvorlagen
Der Dialog zum Erstellen eines neuen Projekts bietet jetzt zwei neue Typen - Qt Console Executable und Qt Widgets Executable:
Geben Sie die erforderlichen Werte an - CLion erstellt ein CMake-Startprojekt des ausgewählten Typs, und jetzt befindet sich die einfachste Widget- oder Konsolenanwendung in Ihrer Tasche! In Bezug auf CMake und Qt schlägt Qt6 übrigens vor, einige Bibliotheken über Conan zu installieren (CLion hat auch ein entsprechendes Plugin ) und sie über CMake und Ninja zu erstellen. Gibt es nicht einen Grund, CLion für die Qt-Entwicklung auszuprobieren?
Übrigens kann CLion beim Hinzufügen einer neuen Qt-UI-Klasse drei Dateien gleichzeitig erstellen ( .ui und Klassendateien). Wählen Sie dazu im Menü Neue Datei hinzufügen die Aktion QT UI-Klasse aus.
Arbeiten mit Qt-Code
Qt-Code ist im Allgemeinen normaler C ++ - Code, hat jedoch seine eigenen Macken. Zum Beispiel hat Qt einen bestimmten Stil zum Importieren von Header-Dateien. Zum Beispiel kann es korrekt aktiviert werden
QtCore/qurl.h
, aber es wäre korrekter zu verwenden
QUrl
. Der Stil wird jetzt beim automatischen Import in CLion unterstützt:
Die Code-Vervollständigungsfunktion versteht jetzt, wann nur Signalvarianten oder nur Slots für die wichtigsten Qt-Entitäten angeboten werden müssen:
Dies ist praktisch, da in der Dropdown-Liste nur die Varianten angezeigt werden, die der Bedeutung entsprechen, und nicht alle, die übereinstimmen durch eingegebene Zeichen.
Welche Qt-Funktion fehlt Ihnen persönlich in CLion? Schreiben Sie in die Kommentare!
Designmodelle in CLion
Wir fügen nach und nach Unterstützung für mehr und mehr Arten von Projekten mit dem Makefile in CLION (wir halten eine Liste der geprüften Projekte hier ). Im 2.020,3 Release unterstützten wir Projekte, die die Verwendung ccache , libtool , Tölpel , slibtool, und jlibtool Tools . Dies sind ZFS-, PHP-, Mono-, Curl-Projekte und andere. Ausführungs- und Debug-Konfigurationen für Ziele aus dem Makefile der obersten Ebene werden automatisch generiert. Darüber hinaus war es für Makefile-Projekte möglich, eine separate Datei neu zu kompilieren, ohne das gesamte Projekt neu erstellen zu müssen (im Standardlayout - Strg + Umschalt + F9 unter Windows / Linux und ⇧⌘F9 unter MacOS).
Für CMake- ProjekteSie können jetzt vorübergehend nicht verwendete CMake-Profile deaktivieren. Dies ist besonders nützlich, wenn für das Projekt mehrere Profile gleichzeitig für die Remoteentwicklung konfiguriert sind (einige davon sind möglicherweise vorübergehend deaktiviert) oder für verschiedene Toolchains (auch nicht immer alle zusammen verwendet). Wenn solche Profile deaktiviert sind, wird die Projektladezeit spürbar reduziert. Früher mussten Profile dafür gelöscht werden, jetzt können Sie sie einfach deaktivieren. Dies kann über die Profileinstellungen unter Einstellungen / Einstellungen | erfolgen Erstellen, Ausführen, Bereitstellen | CMake oder über den CMake-Download-Dialog:
Weitere Informationen zu Verbesserungen für Qt-Projekte und in Projektmodellen finden Sie in unserem Entwickler-Advocate- Vortrag .
MISRA-Standards
Zu unseren Kunden zählen viele Embedded-Entwickler und Vertreter der Automobilindustrie. Ein wichtiger Teil des Entwicklungsprozesses ist für sie die Zertifizierung des Codes nach den MISRA-Standards. Wir können noch nicht bei der Zertifizierung selbst helfen, aber wir sind durchaus in der Lage, frühzeitig auf mögliche Inkonsistenzen mit den MISRA-Standards hinzuweisen! In Version CLion 2020.3 haben wir begonnen, dem integrierten statischen Code-Analysator Überprüfungen für die Standards MISRA C 2012 und MISRA C ++ 2008 hinzuzufügen:
Nicht alle werden unterstützt. Eine vollständige Liste finden Sie auf dieser Seite . Das Einrichten von Inspektionen ist ganz einfach:
Wir werden in Zukunft weitere MISRA-Inspektionen hinzufügen. Möglicherweise werden auch AUTOSAR-Prüfungen angezeigt.
Code With Me ist ein neues Tool für die gemeinsame Entwicklung
Übt Ihr Team die Paarprogrammierung? Wie wäre es mit einem Tool zum Teilen von Code? Wir haben kürzlich ein Early-Access-Programm für unser neues Tool für die gemeinsame Entwicklung, Code With Me, gestartet. Grundsätzlich ist dies ein Plugin, das für fast alle unsere Desktop-IDEs verfügbar ist (ausgenommen bisher JetBrains Rider und DataGrip). Sie und Ihr Team können direkt von Ihren IDEs aus an Projekten zusammenarbeiten. Um Code With Me zu testen, installieren Sie das Plugin unter Einstellungen / Einstellungen | Plugins.
Weitere Informationen zu den Funktionen des Plugins finden Sie in diesen Blog-Beiträgen . Code With Me befindet sich noch in der aktiven Entwicklung. Wenn Sie bei der Verwendung auf Probleme stoßen, teilen Sie uns dies bitte hier mit .
Und vieles mehr
Weitere wichtige Verbesserungen sind:
- Jetzt können Sie mithilfe eines Skripts die Umgebung einrichten, in der die Run / Debug-Konfiguration ausgeführt wird. Außerdem können Sie jetzt Run / Debug-Konfigurationen direkt während der Projektindizierung bearbeiten.
- Wir haben die Funktionen zur automatischen Vervollständigung mit Clang-Snippets erweitert. Sie helfen Ihnen dabei, nicht nur Schlüsselwörter, sondern auch die Syntax von Ganzzahlausdrücken zu korrigieren:
- Das Farbschema von CLion kann jetzt mit Ihrem Betriebssystemthema synchronisiert werden. Um diese Funktion zu aktivieren, gehen Sie zu Einstellungen / Einstellungen | Aussehen & Verhalten | Aussehen und wählen Sie die Option Mit Betriebssystem synchronisieren.
- , (Drag&Drop). Open in Right Split, Project, Recent Files Search Everywhere.
- Git-. VCS , VCS (, Git). Search Everywhere Git. , , .
Das ist alles für uns. Wir freuen uns, dass Sie bis zum Ende gelesen haben. Vielen Dank für Ihre Aufmerksamkeit! Hinterlassen Sie Ihre Fragen, Gedanken und Vorschläge in den Kommentaren - wir interessieren uns für Ihre Meinung und helfen Ihnen gerne weiter!
CLion Team
Der Antrieb zur Entwicklung