Анатомия AddressSanitizer

RU / День 1 / 17:00 / Зал 3

Что такое санитайзеры и как устроен AddressSanitizer? В докладе рассмотрим основные механизмы, используемые ASan для выявления ошибок доступа к памяти. Заглянем в компилятор (clang и gcc), посмотрим, как меняется генерация кода при включении опции fsanitize=address, и к чему это может привести. Посмотрим на рантайм библиотеку ASan и как она взаимодействует со сгенерированным кодом. Рассмотрим примеры, где ASan может ошибиться. Ну и наконец, разберемся, как ASan генерирует отчеты о ошибках, какие при этом могут возникнут проблемы и как их решить.

Цель доклада — сделать так, чтобы для слушателей в работе AddressSanitizer не осталось магии. После доклада люди смогут лучше ориентироваться в том, что выдает ASan, поймут границы его возможностей. Аудитория также получит несколько советов по решению проблем, которые могут возникать на практике при внедрении ASan в проект.