AddressSanitizer
Altre info
- Fondata
- dicembre 1982
- Fondatori
- John Warnock, Charles Geschke
- Sede
- San Jose, California
- Tipo
- Azienda di software
- Sito ufficiale
- adobe.com
Rilevatore di errori di memoria basato sul compilatore, sviluppato da Google (2012). Compilando con -fsanitize=address il programma si interrompe al primo errore con uno stack trace completo, invece di comportarsi in modo strano tre ore più tardi.
La tecnica è la shadow memory: un ottavo dello spazio di indirizzamento è riservato a descrivere se ciascun byte sia valido, e ogni accesso alla memoria riceve un controllo strumentato. Le allocazioni sono circondate da red zone e la memoria liberata viene messa in quarantena, il che intercetta overflow di heap e stack, use-after-free, use-after-return e double free. Il costo è circa 2× di tempo di esecuzione e 3× di memoria: va quindi usato nei test e nella CI, non in produzione. Il resto della famiglia: ThreadSanitizer (data race), MemorySanitizer (memoria non inizializzata), UndefinedBehaviorSanitizer. Disponibile sia in Clang sia in GCC.