IT-словарь › Программирование › AddressSanitizer

AddressSanitizer

Программирование Svenska → Обновлено: 2026-10-17

Основанный на компиляторе детектор ошибок памяти от Google (2012). Соберите с -fsanitize=address — и программа аварийно остановится на первой же ошибке с полным стеком вызовов, а не начнёт странно себя вести три часа спустя.

Техника называется теневой памятью: одна восьмая адресного пространства резервируется под описание того, допустим ли каждый байт, а каждое обращение к памяти получает инструментированную проверку. Выделенные блоки окружаются «красными зонами», а освобождённая память помещается в карантин — так ловятся переполнения кучи и стека, use-after-free, use-after-return и двойное освобождение. Цена — примерно двукратное замедление и трёхкратный расход памяти, поэтому место ему в тестах и CI, а не в продакшене. Остальное семейство: ThreadSanitizer (гонки данных), MemorySanitizer (неинициализированная память), UndefinedBehaviorSanitizer. Есть и в Clang, и в GCC.

← Назад к словарю