Dynamic Analysis
L'analyse dynamique surveille le comportement d'un programme à l'exécution, détectant les problèmes d'exécution tels que fuites mémoire, courses et goulots d'étranglement de performance.
Objectif
Découvrir les défauts d'exécution que l'analyse statique peine à détecter, comme les fuites mémoire et les courses de données.
Mécanisme
Le programme s'exécute instrumenté ou en bac à sable, en surveillant allocations et libérations mémoire, entrelacements de threads et durées de fonctions. Valgrind détecte les erreurs mémoire, AddressSanitizer les accès hors bornes/UAF, ThreadSanitizer les courses.
Cas d’usage
- Détection de fuites mémoire
- Détection de courses
- Profilage