Utiliser les outils développeur dans CLionVous pouvez utiliser valgrind, address sanitizer, et perf directement depuis CLion. Valgrind et address sanitizer vous aident à débugger les erreurs difficile de mémoire (accès en dehors des limites, corruption mémoire, etc) et détecter les fuites mémoire (e.g. malloc non libéré). Perf vous permet de savoir quelles fonctions sont les plus coûteuses en temps de calcul. ValgrindLancez votre programme avec "Run <nom du programme> with Valgrind Memcheck": Il est conseillé d'utiliser valgrind en mode "Release" (optimisation -O3 du compilateur) plutôt que "Debug" (pas d'optimisation) car l'exécution sous valgrind est très lente. A la fin de l'exécution du programme, consultez les messages valgrind: Ici, on peut voir que la surface créée avec Address sanitizerAddress sanitizer a le même rôle que valgrind, mais l'exécution du programme est bien plus rapide. Par contre certaines erreurs sont détectées par valgrind et pas par address sanitizer, et inversement. Il est donc utile de tester vos programmes avec ces 2 outils. Address sanitizer s'utilise en ajoutant le flag if(IG_ASAN) set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fsanitize=address -O1 -DIG_ASAN=1") endif(IG_ASAN) Pour activer cette directive, il faut activer le flag Exécutez votre programme en utilisant cette nouvelle configuration "ASAN". A la fin de l'exécution, consultez les messages d'adresse sanitizer: Ici, nous avons ajouté une instruction erronée PerfPerf regarde très fréquemment quelle est la fonction en cours d'exécution dans le programme. Après l'exécution, il affiche toutes les fonctions en les triant par le nombre de fois où il les a vues. Les fonction qui utilisent beaucoup le CPU apparaissent en premier. A la fin de l'exécution de votre programme, vous pouvez consulter le résultat dans l'onglet de perf. Pensez à générer beaucoup d'événements (et donc de calculs) pendant l'exécution. |