Начало основного контента

Анатомия ThreadSanitizer

День 3

RU

В докладе рассмотрим основные механизмы, используемые TSan для выявления ошибок совместного доступа к данным (aka data races).

Как обычно, посмотрим, как поддержка этого санитайзера реализована в компиляторе (clang и gcc), как меняется генерация кода при включении опции fsanitize=thread, и к чему это может привести.

Также посмотрим, как реализована поддержка TSan со стороны рантайма. Разберемся, почему TSan использует примерно в 10 раз больше адресного пространства, чем ASan. Нужно ли пересобирать все используемые библиотеки с TSan или же можно включить TSan только для части исходников, и почему TSan не сочетается с ASan. Ну и, наконец, может ли TSan поймать deadlock.

Основная цель доклада — изжить магию из TSan'a. После доклада слушатели будут понимать основные принципы работы TSan, знать когда и как его можно применять, а когда его применение бесполезно, или даже вредно.

  • #GCC
  • #linux
  • #datarace
  • #clang
  • #tooling
  • #multithreading

Спикеры

Приглашенные эксперты