Glossaire
AddressSanitizer (ASan)
Une instrumentation à la compilation et un runtime qui détectent les accès hors limites, l'use-after-free et le double free à l'instruction fautive exacte.
AddressSanitizer (ASan) est un détecteur d'erreurs mémoire intégré à Clang, GCC et MSVC, activé avec -fsanitize=address. Il associe la mémoire de l'application à une mémoire fantôme (shadow memory), entoure les objets du tas, de la pile et globaux de zones rouges (redzones) empoisonnées, et retarde la réutilisation de la mémoire libérée dans une quarantaine. Chaque lecture et écriture est vérifiée, si bien qu'un bug qui corromprait silencieusement la mémoire produit un rapport immédiat avec les traces de pile de l'accès, de l'allocation et de la libération.
ASan coûte généralement environ le double du temps CPU et deux à trois fois plus de mémoire, ce qui le rend idéal pour les tests, la CI et le fuzzing plutôt que pour la production. Voir AddressSanitizer, UBSan et compagnie.