Freigeben über


AddressSanitizer-Laufzeitoptionen

In der folgenden Tabelle sind die Optionen für addressSanitizer aufgeführt. Aktivieren Sie sie über die Umgebungsvariable ASAN_OPTIONS oder durch Überschreiben der __asan_default_options()hier beschriebenen Benutzerfunktion.

Hinweis

Diese Beschreibungen weisen bestimmte Verhaltensweisen von Microsoft Visual C++ (MSVC) auf, die von den Laufzeitoptionen von Clang abweichen können.

Flag Standardwert Description
abort_on_error false Wenn true, ruft abort() ASan anstelle nach dem _exit() Drucken des Fehlerberichts auf.
alloc_dealloc_mismatch false Erkennt nicht übereinstimmende Speichervorgänge wie malloc/delete, new[]/freeusw.
allocator_frees_and_returns_null_on_realloc_zero true Wenn dieser Standardwert auf ", ist identisch mit dem POSIX-Standard.If set to true, realloc(p, 0) is the same as free(p) by default (which is the same as the POSIX standard). Wenn dieser Wert festgelegt ist false, realloc(p, 0) wird ein Zeiger auf einen zugewiesenen Bereich zurückgegeben, der nicht verwendet werden kann.
allocator_may_return_null false Wenn true, gibt der Allocator nullptr zurück, wenn nicht genügend Arbeitsspeicher vorhanden ist. Anstatt abstürzen zu können, gibt ASan eine Warnung über den Ausfall des Allocators aus, und die Ausführung wird fortgesetzt.
allow_user_poisoning true Wenn true, können Sie Speicherbereiche manuell als vergiftet oder unbeliebt markieren, indem Sie die Manuelle AddressSanitizer-Vergiftungsschnittstelle verwenden.
check_initialization_order false Wenn trueversucht wird, Probleme mit der Initialisierungsreihenfolge zu erfassen.
continue_on_error 0 Ermöglicht es einer Anwendung, die Ausführung fortzusetzen, während Speichersicherheitsfehler gemeldet werden.
0 deaktiviert.
1-aktiviert; Fehler werden an stdout.
2-aktiviert; Fehler werden an stderr.
Weitere Informationen finden Sie unter continue_on_error.
detect_container_overflow true Wenn true, berücksichtigen Sie die Containerüberlaufanmerkungen. Weitere Informationen finden Sie unter ContainerOverflow.
detect_invalid_pointer_pairs false Wenn true, ASan Erkennt Vorgänge wie <, <=, >, >=, und - auf ungültigen Zeigerpaaren wie Zeigerpaaren, die zu verschiedenen Objekten gehören.
detect_stack_use_after_return false Experimentell. Wenn true, aktiviert ASan die stack-use-after-return Überprüfung zur Laufzeit. Erfordert /fsanitize-address-use-after-return. Weitere Informationen finden Sie unter stack-use-after-return.
exitcode 1 Setzt den Status des Programmausgangs mit diesem Wert außer Kraft, wenn ASan einen Fehler findet.
external_symbolizer_path "" Pfad zum äußeren Symbolgeber. Wenn leer, sucht ASan nach $PATH dem Symboler.
fast_unwind_on_malloc true Wenn verfügbar, verwendet ASan den schnellen Frame-Zeiger-basierten Abspanner auf malloc/free.
halt_on_error true Nicht unterstützt. Verwenden Sie stattdessen continue_on_error.
handle_segv true Wenn true, verarbeitet SEGV ASan Fehler.
handle_sigfpe true Wenn true, verarbeitet SIGFPE ASan Fehler.
handle_sigill true Wenn true, verarbeitet SIGILL ASan Fehler.
help false Wenn true, druckt ASan die Kennzeichnungsoptionen in der Konsole.
iat_overwrite error error – meldet einen Fehler, wenn ein Überschreiben erkannt wird.
protect - versucht, die verwendung der überschriebenen Definition zu vermeiden.
ignore - versucht nicht, überschriebene Funktionen zu korrigieren. Weitere Informationen finden Sie unter iat_overwrite.
include_if_exists "" Liest Optionen aus der angegebenen Datei. ASan schlägt nicht fehl, wenn die Datei nicht vorhanden ist.
intercept_strpbrk true Wenn true, verwendet benutzerdefinierte Wrapper, um strpbrk weitere Fehler zu finden.
intercept_strspn true Wenn true, verwendet benutzerdefinierte Wrapper für strspn und strcspn um weitere Fehler zu finden.
intercept_strstr true Wenn true, verwendet benutzerdefinierte Wrapper für strstr und strcasestr um weitere Fehler zu finden.
malloc_context_size 1 Maximale Anzahl von Stapelframes, die für jede Zuordnung/Zuordnung beibehalten werden sollen.
malloc_fill_byte 0xbe Wert, der zum Ausfüllen des neu zugewiesenen Speichers verwendet wird.
max_malloc_fill_size 4096 Der ASan-Allocator füllt eine Zuordnung mit malloc_fill_byte bis zu max_malloc_fill_size einem Aufruf von malloc.
max_redzone 2048 Maximale Größe (in Byte) von Redzones um Heap-Objekte.
new_delete_type_mismatch true Fehler melden, die zwischen der Größe und newder Größe übereinstimmendelete. Weitere Informationen finden Sie unter new-delete-type-mismatch.
poison_heap true Wenn true, vergiften Sie den Heap-Speicher bei der Zuordnung und Deallocation. false ist nützlich, um den Allokator oder Instrumentator zu vergleichen.
poison_partial true Wenn true, Gift teilweise adressierbar 8-Byte ausgerichtete Wörter. Dieses Flag wirkt sich auf Heap- und globale Puffer aus, aber nicht auf Stapelpuffer.
print_cmdline false Drucken Sie die Befehlszeile beim Absturz. Mit continue_on_error "set >= 1" wird das aktuelle Arbeitsverzeichnis gedruckt und ist UTF-16 sich bewusst.
print_legend true Wenn true, drucken Sie die Legende der Schattenspeicherkarte, um den ASan-Bericht zu begleiten.
print_stats false Wenn true, drucken Allocator-Statistiken nach dem Drucken des ASan-Berichts.
print_summary true Wenn false, deaktiviert die Anzeige von Fehlerzusammenfassungen, die Fehlerberichte begleiten.
quarantine_size_mb -1 Größe (in Mb) der Quarantäne, die verwendet wird, um Fehler zu erkennen use-after-free . Ein niedrigerer Wert kann die Wahrscheinlichkeit falsch negativer Ergebnisse erhöhen.
redzone 16 Minimale Größe (in Byte) von Redzones um Heap-Objekte. Anforderung: redzone >= 16 und muss eine Macht von zwei sein.
replace_str true Wenn true, verwendet benutzerdefinierte Wrapper und Ersetzungen für libc Zeichenfolgenfunktionen, um weitere Fehler zu finden.
report_globals 1 So reagieren Sie auf pufferüberlauf für Globalen:
0-don't detect buffer overflow on globals.
1 – Pufferüberlauf erkennen.
2 – Erkennen des Pufferüberlaufs und Drucken registrierter globaler Daten.
sleep_before_dying 0 Die Anzahl der Sekunden, die zwischen dem Drucken eines Fehlerberichts und dem Beenden des Programms in den Ruhezustand geschlafen werden.
stack_trace_format DEFAULT Formatzeichenfolge zum Rendern von Stapelframes. DEFAULT - #%n %p %F %L. Liste der verfügbaren Platzhalter:
%% - stellt ein '%' Zeichen dar.
%n - Framenummer (Kopie von frame_no)
%p - PC
%m - Pfad zum Modul
%o - Offset im Modul
%f - Funktionsname
%q - falls verfügbar, Offset in der Funktion
%s - Pfad zur Quelldatei
%l - Zeile in der Quelldatei
%c - Spalte in der Quelldatei
%F - Wenn die Funktion bekannt ist, druckt in <func name> ASan den Offset in dieser Funktion, wenn die Quelle unbekannt ist.
%S - ASan druckt Datei-/Zeilen-/Spalteninformationen
%L - Wenn Dateiinformationen verfügbar sind, druckt ASan den Dateinamen, die Zeile und die Spalte. Wenn Modulinformationen verfügbar sind, druckt ASan den Modulnamen, den Offset und die Architektur. Wenn keines verfügbar ist, druckt ASan (<unknown module>)
%M - Wenn bekannt, druckt ASan Modulbasisname und Offset, oder PC
strict_memcmp true Wenn true, wird davon ausgegangen, dass memcmp(p1, p2, n) vor dem Vergleichen und nVergleichen p1 immer Bytes gelesen p2 werden.
strict_string_checks false Wenn true, überprüft, ob Zeichenfolgenargumente ordnungsgemäß null-beendet sind.
strip_path_prefix "" Entfernt dieses Präfix aus Dateipfaden in Fehlerberichten.
symbolize true Verwenden trueSie llvm-symbolizer die Option , um virtuelle Adressen in Datei- oder Zeilenspeicherorte umzuwandeln.
symbolize_inline_frames true Drucken sie inlineierte Frames in Stacktraces.
verbosity 0 Ausführlichkeitsebene:
0 – Standardmäßige Ausführlichkeit.
1 - mehr Ausgabe.
2 - noch mehr Ausgabe.
3 - maximale Ausführlichkeit.
windows_fast_fail_on_error false Wenn trueder Prozess nach dem Drucken des Fehlerberichts mit einem __fastfail(71) beendet werden kann. Weitere Informationen finden Sie unter windows_fast_fail_on_error.
windows_hook_legacy_allocators true Wenn true, aktiviert die Hooking von (Global/Local)(Alloc/Free/Size/ReAlloc/Lock/Unlock) Funktionen.

Siehe auch

AddressSanitizer -Übersicht
Beheben bekannter Probleme mit demSanitizer
AddressSanitizer Build- und Sprachreferenz
AddressSanitizer-Schattenbytes
AddressSanitizer-Cloud oder verteilte Tests
AddressSanitizer Debugger-Integration
Beispiele für AddressSanitizer-Fehler