SkillProgramaçãoQA
Address Sanitizer e Outros Sanitizers
Usa AddressSanitizer, UBSan, MSan e afins para pegar bugs de memória e comportamento indefinido cedo — em dev, testes e fuzzing. Indicada para código C/C++/Rust/Go que manipula memória diretamente.
Ações
PerfilDev
ProfundidadeMédia
IdiomaInglês (skill original)
Objetivo
Em uma frase.
Capturar bugs de memória e comportamento indefinido em tempo de execução, antes que cheguem à produção. Sanitizers pegam use-after-free, buffer overflow, memória não inicializada e UB que escapam dos testes unitários, e vêm de graça com a toolchain.
Aplicação
Quando
faz sentido.
Usar
Não usar
- Código puramente em linguagem gerenciada, sem essa classe de bugs de memória
- Builds de produção, já que o overhead do sanitizer é de cerca de 2 a 3x em runtime e memória
Prompt
Instruções
para a IA.
### Catálogo de sanitizers
Escolha o sanitizer conforme a classe de bug. O AddressSanitizer (ASan,
### Como habilitar
No CMake, adicione
### Combinações e CI
ASan, UBSan e LSan são compatíveis e rodam juntos; MSan e TSan precisam rodar isolados. No CI, faça o build da variante com sanitizer junto do build normal, rode a suíte de testes sobre ela e falhe o pipeline em qualquer report. Para fuzzing, sempre rode com sanitizers. A saída esperada é um build sanitizado integrado ao CI com relatório de findings.
Escolha o sanitizer conforme a classe de bug. O AddressSanitizer (ASan,
-fsanitize=address) pega overflows de heap/stack/global, use-after-free, double-free e leaks (com LSan). O UBSan (-fsanitize=undefined) captura overflow de inteiro, ponteiro desalinhado, divisão por zero e null deref. O MemorySanitizer (MSan, só Clang) detecta leituras de memória não inicializada. O ThreadSanitizer (TSan) encontra data races.### Como habilitar
No CMake, adicione
-fsanitize=address,undefined -fno-omit-frame-pointer às flags. Em Rust nightly, use RUSTFLAGS="-Z sanitizer=address" cargo +nightly test. Em Go, basta go test -race.### Combinações e CI
ASan, UBSan e LSan são compatíveis e rodam juntos; MSan e TSan precisam rodar isolados. No CI, faça o build da variante com sanitizer junto do build normal, rode a suíte de testes sobre ela e falhe o pipeline em qualquer report. Para fuzzing, sempre rode com sanitizers. A saída esperada é um build sanitizado integrado ao CI com relatório de findings.
Constelação
Onde
ela vive.
Bundles que incluem
Execução
Como usar
com IA.
- 01Copie a skill (botão "Copiar skill para IA", no topo): o texto copiado já é a skill completa, não um resumo.
- 02Abra o Claude ou Claude Code e cole — a IA recebe todas as instruções e fica pronta para a tarefa.
- 03Prefere usar como arquivo reutilizável? Baixe o .zip e coloque o
SKILL.mdem.claude/skills/(Claude Code) ou anexe o arquivo no Claude (claude.ai).