Recommendations for which sanitizers to enable
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 35/100
- Issue-Typ
- Dokumentation
- Klarheit
- Muss geklärt werden
- Aktivitätsstatus
- Veraltet
- Tech-Stack
- cpp
- Bereich
- documentation, testing-qa
Rechercherichtung
Beginnen Sie damit, die Sanitizer-Gruppierungen in den referenzierten Sanitizers.def-Dateien mit der Dokumentation zu AddressSanitizer, ThreadSanitizer, MemorySanitizer, UndefinedBehaviorSanitizer, DataFlowSanitizer, LeakSanitizer, Control Flow Integrity und Safe Stack zu vergleichen. Klären Sie die Empfehlungen für Tests, die immer aktiviert sind, für CI und für Live-Testing-Builds, einschließlich relevanter Flags, Umgebungsvariablen und Plattformgrenzen. Als erledigt gilt die Aufgabe, wenn der Issue eine prägnante, klare Referenz enthält, die diese Fragen abdeckt.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
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
- Vorherrschende Sprache
- Keine Sprachdaten
- Sterne
- 110
- Forks
- 17
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beitragsleitfaden
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus mapbox/cpp
-
glossary
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 68/100
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 25/100
-
Docs on ABIs Offen
Schwierigkeit 4/5 3-5 Tage Anfängerfreundlichkeit 30/100
-
clang-tidy v. -Weffc++ Offen
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 30/100
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 35/100
Ähnliche Issues
-
content
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
GDQuest/learn-gdscript#1395 ·
-
rules
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 90/100
-
HttpClient
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 75/100
symfony/symfony-docs#23092 ·
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 90/100
-
Schwierigkeit 1/5 Unter einer Stunde Anfängerfreundlichkeit 95/100
huggingface/sentence-transformers#4074 ·