Sur les plateformes Linux et MacOS, CLion s'intègre à Valgrind Memcheck pour vous aider à détecter les erreurs de mémoire.
Il vous permet d'exécuter des cibles avec Valgrind Memcheck et d'obtenir les résultats dans un onglet spécial de la fenêtre de l'outil Run. Les utilisateurs peuvent exécuter à la fois des cibles régulières et des cibles de tests unitaires avec Memcheck.
Valgrind est également disponible sous Windows avec la chaîne d'outils WSL et en mode distant.
Pour détecter les problèmes d'adressabilité, les fuites de mémoire, les courses de données et les problèmes de mémoire non initialisés sous Linux et macOS, utilisez l'intégration de Google Sanitizers dans CLion.
Si vous utilisez Clang >= 3.8.0 ou GCC >= 5.0.0, lorsque vous exécutez/déboguez votre application ou vos tests unitaires avec un flag de compilation -fsanitize
, CLion affiche la sortie des sanitizers dans l'onglet "Sanitizer" de la fenêtre de l'outil d'exécution. Cela vous permet de consulter la liste des erreurs et leurs traces dans l'IDE, de naviguer vers les sources, de prévisualiser les sources ou d'inspecter les informations de frame.
CLion s'intègre avec CPU Profiler sous Linux (Perf) et macOS (DTrace). Le profilage est également possible en mode distant et sur WSL.
Vous pouvez exécuter le profileur directement depuis l'IDE et consulter les résultats de l'analyse dans une fenêtre d'outil dédiée (View | Tool Windows | CPU Profiler).
Utilisez le flame chart, l'arborescence des appels et les listes de méthodes pour obtenir une meilleure vue d'ensemble des éventuels problèmes de performance de votre code. Naviguez jusqu'au code source pour localiser les problèmes dans la base de code.
Si vous vous êtes déjà posé la question : « Cette instruction a-t-elle été incluse dans l'exécution de la configuration ? », vous avez besoin d'une couverture des instruction (Statements Coverage) pour évaluer votre code. CLion vous l'offre grâce à l'intégration des outils llvm-cov/gcov.
En plus de la couverture des lignes, CLion peut à présent calculer également la couverture des branches (Branch Coverage). Cette méthode prend en compte l'ensemble des branches de chaque structure de contrôle.
Vous pouvez en bénéficier pour l'exécution de tests unitaires ou l'exécution d'une configuration ordinaire. Les résultats s'affichent dans la fenêtre de l'outil Coverage ou sont indiqués par un système de couleurs dans la gouttière gauche de l'éditeur.
Pour en savoir plus