Recommendations for which sanitizers to enable
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 35/100
- Tipo de issue
- Documentação
- Clareza
- Precisa de esclarecimento
- Status de atividade
- Estagnada
- Stack de tecnologia
- cpp
- Domínio
- documentation, testing-qa
Direção de pesquisa
Comece comparando os agrupamentos de sanitizers nos arquivos Sanitizers.def referenciados com a documentação de AddressSanitizer, ThreadSanitizer, MemorySanitizer, UndefinedBehaviorSanitizer, DataFlowSanitizer, LeakSanitizer, Control Flow Integrity e Safe Stack. Esclareça as recomendações para testes sempre ativados, CI e builds de live-testing, incluindo os flags relevantes, as variáveis de ambiente e as limitações da plataforma. O trabalho estará concluído quando a issue contiver uma referência concisa e assertiva que cubra essas questões.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
As time passes, the g++/clang++ gain more new sanitizers, existing ones get better, and some get ported to new platforms (e.g. recently leak support was added to OS X in clang++ 5).
Similar to #37 for warnings, This ticket can serve as a central place to start documenting a recommended list of sanitizer flags to use. I intend this to be a quick, opinionated reference to check before you would dive deeper into docs like https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html.
The relevant questions I see are:
- 🍇 Which sanitizers should we always test with?
- 🍊 Which additional flags or environment variables should we use?
- 🍏 Which additional flags should be used when testing the sanitizers on CI systems?
- 🍎 Which additional flags should be used when building sanitized binaries for live testing?
Refs:
- source of truth for which sanitizers are in which groupings:
- Docs for HEAD llvm for sanitizers:
- Address: https://clang.llvm.org/docs/AddressSanitizer.html
- Thread: https://clang.llvm.org/docs/ThreadSanitizer.html
- Memory: https://clang.llvm.org/docs/MemorySanitizer.html
- UndefinedBehavior: https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html
- DataFlow: https://clang.llvm.org/docs/DataFlowSanitizer.html
- Leak: https://clang.llvm.org/docs/LeakSanitizer.html
- Control Flow Integrity: https://clang.llvm.org/docs/ControlFlowIntegrity.html
- Safe Stack: https://clang.llvm.org/docs/SafeStack.html
- Linguagem predominante
- Sem dados de linguagem
- Estrelas
- 110
- Forks
- 17
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de mapbox/cpp
-
glossary
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 68/100
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 25/100
-
Docs on ABIs Aberta
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 30/100
-
clang-tidy v. -Weffc++ Aberta
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 30/100
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 35/100
Issues semelhantes
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 95/100
Git-it-App/git-it-electron#1047 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
neondatabase/website#5944 ·
-
📕documentation
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
db-ux-design-system/core-web#8239 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
libsdl-org/sdlwiki#1008 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100