ExpertiDict

C++ · Intermediário · Inglês · Técnico

AddressSanitizer

əˈdɹɛs ˈsæn.ɪˌtaɪ.zɚsubstantivo

Ferramenta do GCC e do Clang, ativada com -fsanitize=address, que instrumenta o programa para detectar em tempo de execução acessos fora dos limites, uso após free e vazamentos.

Onde usar

Rodar os testes com ASan na CI pega bugs de memória que não derrubam o programa de imediato. O relatório mostra a pilha do acesso inválido e de onde veio a memória.

Em código

g++ -g -fsanitize=address main.cpp -o app
./app
# ERROR: AddressSanitizer:
#   heap-buffer-overflow on address ...

Exemplos

AddressSanitizer caught a heap buffer overflow in the parser.

O AddressSanitizer pegou um estouro de buffer no parser.

Build the tests with ASan enabled in CI.

Compile os testes com o ASan ligado na CI.

Cuidado

Deixa o programa mais lento e usa mais memória, então serve para desenvolvimento e testes, não para o binário de produção.

Sinônimos

ASan

Veja também

Todos os termos de C++