IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

CLion 2021.1 fournit la prise en charge étendue de MISRA, l'intégration de Clazy pour les projets Qt,
Ainsi que d'une amélioration de l'expérience d'analyse du code

Le , par Stéphane le calme

135PARTAGES

7  0 
JetBrains vient de publier la version 2021.1 de CLion, son EDI C/C++ pour Linux, macOS et Windows intégré au système de génération CMake. CLion 2021.1 améliore l'expérience d'analyse du code avec l'analyse des flux de données en mode global, la prise en charge étendue de MISRA et l'intégration de Clazy pour les projets Qt. Dans le débogueur, GDB et LLDB proposent maintenant les mêmes fonctionnalités pour le débogage Core Dump. Enfin, le mode à distance dispose d'un éventail de fonctionnalités élargi et fonctionne de manière cohérente sur plusieurs modèles de projets.

Data Flow Analysis

L'analyse du flux de données (DFA) suit le flux de données dans votre code et détecte les problèmes potentiels sur la base de cette analyse. En plus de l'analyse DFA locale (qui fonctionne au sein d'une fonction isolée), CLion 2021.1 inclut une DFA globale (qui considère l'ensemble d'une unité de traduction d'un programme comme un seul élément pour l'analyse). La DFA globale n'enrichit pas seulement les contrôles déjà existants, elle ajoute également plusieurs nouvelles inspections uniques.

Renforcer les vérifications locales avec l'analyse DFA globale

La liste des inspections actuelles basées sur la DFA qui bénéficient de la DFA globale inclut les éléments suivants :
  • Dangling pointers : détecte les pointeurs susceptibles de rediriger vers une mémoire déjà effacée ;
  • Null dereference : détecte le déréférencement de pointeurs pouvant contenir nullptr ;
  • Endless loops et Infinite recursion ;
  • Constant conditions : détecte les conditions possibles qui sont toujours vraies ou fausses ;
  • Unreachable code et Unused values ;
  • Escape analysis : détecte les variables contenant des références à des variables locales qui échappent à leur portée.

Nouvelles vérifications de DFA globale

Plusieurs nouvelles inspections ont été ajoutées, qui n'ont de sens que dans le cadre d'une analyse globale – en exécutant une DFA sur l'ensemble de l'unité de traduction d'un programme :
  • Constant function result : signale les fonctions dont la valeur de retour semble toujours être la même constante ;
  • Constant parameter : signale les fonctions où un paramètre semble toujours être la même constante ;
  • Unreachable function calls : détecte les fonctions dont les sites d'appel ne sont jamais exécutés.

Améliorations des performances

CLion 2021.1 optimise également de nombreuses étapes de la DFA. Les mesures de performance sur les projets Postgres, Eigen et Clangd, entre autres, montrent que la performance globale est bonne et que certaines caractéristiques ont été améliorées (comme le nombre de fichiers dans lesquels l'exécution de la DFA a été interrompue par CLion en raison d'une expiration de délai).

Analyse dynamique

Couverture des branches

En plus de la couverture des lignes, CLion 2021.1 peut à présent calculer également la couverture des branches. Cette méthode prend en compte l'ensemble des branches de chaque structure de contrôle. Exécutez votre application ou vos tests CMake avec la couverture et vérifiez la nouvelle colonne qui a été ajoutée à la fenêtre d'outils Coverage.

La couverture des branches est activée par défaut et peut être paramétrée dansSettings | Build, Execution, Deployment | Coverage, mais elle ne fonctionne qu'avec GCC/gcov ou la version 12.0.0 de LLVM/llvm-cov (ou une version ultérieure).


Analyse dynamique en mode distant

Afin d'assurer la cohérence des fonctionnalités sur l'ensemble des chaînes d'outils, des modèles de projets et des configurations, CLion 2021.1 permet à Google Sanitizers, Valgrind Memcheck et Code Coverage de fonctionner avec des chaînes d'outils distantes.

Contrôles MISRA C et C++

CLion 2021.1 ajoute des vérifications supplémentaires des normes MISRA C 2012 et MISRA C++ 2008. La liste complète est maintenue sur notre page Confluence et vous permet de suivre facilement l'avancement.

Saisie semi-automatique Postfix pour C et C++

La saisie semi-automatique postfix pour C et C++ vous permet d'ajouter du code autour d'une expression que vous venez de saisir. Elle peut ajouter une construction de langage fréquemment utilisée à une expression ou passer l'expression comme premier argument d'une fonction libre.

Ajouter une construction de langage à l'expression

Les modèles Postfix peuvent vous aider à utiliser des constructions de langage courantes. Saisissez une expression puis un point, ajoutez l'abréviation du modèle postfix et appuyez ensuite sur la touche d'expansion ou sélectionnez le modèle requis dans la liste de saisie semi-automatique qui apparaît. Le template étendu enveloppera l'expression donnée. Retrouvez la liste complète des modèles dans Settings | Editor | General | Postfix Completion.

Passer l'expression dans une fonction libre

Utilisez la saisie semi-automatique du code postfix pour passer l'expression que vous venez de saisir comme premier argument d'une fonction libre. Saisissez une expression, puis un point et sélectionnez une fonction libre dans la liste de saisie semi-automatique qui s'affiche.

Améliorations pour les projets Makefile

Prise en charge initiale des projets Makefile distants

CLion 2021.1 vous permet de travailler avec des projets Makefile sur une machine distante. Changez la chaîne d'outils dans les paramètres Makefile pour désigner une chaîne distante, puis rechargez le projet. Il se synchronisera avec la machine distante. Compilez, exécutez et déboguez votre application à distance à partir de votre CLion local.


Plugin Makefile Language

Le plugin Makefile Language, qui était auparavant un service tiers, est désormais maintenu par l'équipe CLion et intégré à CLion. Le plugin fournit la mise en évidence de la syntaxe make, une documentation rapide, la fonctionnalité Find Usages pour les cibles et plusieurs actions de navigation et de saisie semi-automatique du code pour Makefile.

Améliorations pour les projets CMake

Partager des profils CMake dans un VCS

Les paramètres du profil CMake dans CLion sont maintenant stockés dans un fichier cmake.xml au sein du répertoire .idea et peuvent être partagés dans le VCS en même temps que le projet. Il vous suffit de sélectionner l'option Share dans Settings | Build, Execution, Deployment | CMake.

CLion 2021.1 intègre CMake 3.19. En plus des autres changements qu'elle introduit, il s'agit de la première version de CMake à prendre en charge la puce Apple Silicon (M1).

Les fonctionnalités de CMake 3.19 pour CUDA sont désormais prises en charge dans CLion, ce qui inclut la saisie semi-automatique pour quelques nouvelles variables CMake.

Améliorations pour les projets Qt

Intégration de Clazy

Clazy, un analyseur de code statique orienté Qt, est désormais intégré au moteur basé sur Clangd de CLion. CLion utilise actuellement la version 1.8. Les contrôles s'affichent dans l'éditeur et des correctifs rapides sont également disponibles.

Les utilisateurs peuvent configurer le degré de sévérité de CLion et le niveau des contrôles Clazy dans Settings | Editor | Inspections | C/C++ | General | Clazy.


Raccourcis clavier QtCreator

Pour celles et ceux qui sont habitué·es aux associations de touches dans QtCreator, CLion intègre maintenant les raccourcis clavier QtCreator. Vous pouvez choisir de les utiliser dans Settings ou via une action Quick Switch Scheme (Ctrl+`).

Débogueur

Set Execution Point dans le désassemblage

L'action Set Execution Point vous permet de passer directement à une ligne de code quelconque dans l'éditeur pendant une session de débogage et d'y définir le point d'exécution en ignorant toutes les autres commandes intermédiaires. Elle fonctionne désormais dans la vue de désassemblage, ce qui vous permet de déplacer le point d'exécution tout en parcourant progressivement le code d'assemblage.

Débogage des core dumps

Lors du débogage des core dumps dans CLion 2021.1, les utilisateurs peuvent désormais définir sysroot dans la configuration d'exécution correspondante. Cela aidera à localiser les symboles de la bibliothèque lors du débogage des core dumps à partir de binaires créés sur d'autres systèmes.

La définition explicite des fichiers de symboles lors du débogage d'un core dump pour un binaire non symbolisé avec LLDB fournit désormais également les informations nécessaires sur les symboles à CLion. Avec ce correctif, GDB et LLDB proposent maintenant les mêmes fonctionnalités pour le débogage Core Dump!

Terminal distant

Une nouvelle action Tools | Open Remote Host Terminal ouvre le répertoire du projet sur l'hôte distant, s'il existe. L'hôte distant correspond au profil distant actuellement sélectionné ou, si un profil local est sélectionné, au premier profil distant trouvé dans le projet.


Vue du projet

Les fichiers source situés en dehors de la racine du projet sont désormais regroupés sous le nœud External Sources dans l'arborescence du projet. Cela permet d'éviter l'encombrement de ces...
La fin de cet article est réservée aux abonnés. Soutenez le Club Developpez.com en prenant un abonnement pour que nous puissions continuer à vous proposer des publications.

Une erreur dans cette actualité ? Signalez-nous-la !