Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W poniższej tabeli wymieniono opcje narzędzia AddressSanitizer. Włącz je za pośrednictwem zmiennej środowiskowej ASAN_OPTIONS lub przez zastąpienie __asan_default_options() funkcji użytkownika opisanej tutaj.
Uwaga / Notatka
Te opisy dotyczą zachowań specyficznych dla języka Microsoft Visual C++ (MSVC), które mogą różnić się od opcji środowiska uruchomieniowego języka Clang.
| Flag | Wartość domyślna | Description |
|---|---|---|
abort_on_error |
false |
Jeśli truepolecenie , ASan wywołuje abort() zamiast _exit() po wydrukowaniu raportu o błędach. |
alloc_dealloc_mismatch |
false |
Wykrywa niezgodne operacje pamięci, takie jak malloc/delete, new[]/freei tak dalej. |
allocator_frees_and_returns_null_on_realloc_zero |
true |
Jeśli jest ustawiona truewartość , realloc(p, 0) jest taka sama jak free(p) domyślnie (która jest taka sama jak w przypadku standardu POSIX). Jeśli ustawiono wartość false, realloc(p, 0) zwraca wskaźnik do przydzielonego miejsca, którego nie można użyć. |
allocator_may_return_null |
false |
Jeśli truealokator zwraca nullptr wartość w przypadku braku pamięci. Zamiast ulegać awarii, ASan emituje ostrzeżenie o awarii alokatora i trwa wykonywanie. |
allow_user_poisoning |
true |
Jeśli trueparametr , możesz ręcznie oznaczyć regiony pamięci jako zatrute lub niezatwierdzone przy użyciu interfejsu zatrucia Manual AddressSanitizer. |
check_initialization_order |
false |
Jeśli trueprogram próbuje przechwycić problemy z kolejnością inicjowania. |
continue_on_error |
0 | Umożliwia aplikacji kontynuowanie działania podczas raportowania błędów bezpieczeństwa pamięci. 0-wyłączone. Włączone 1; błędy są wysyłane do usługi stdout.2-włączone; błędy są wysyłane do usługi stderr.Aby uzyskać więcej informacji, zobacz continue_on_error. |
detect_container_overflow |
true |
W przypadku trueelementu należy przestrzegać adnotacji przepełnienia kontenera. Aby uzyskać więcej informacji, zobacz ContainerOverflow. |
detect_invalid_pointer_pairs |
false |
Jeśli trueelement , ASan wykryje operacje, takie jak <, , <=>, >=i - w nieprawidłowych parach wskaźników, takich jak wskaźniki należące do różnych obiektów. |
detect_stack_use_after_return |
false |
Eksperymentalny. Jeśli trueparametr , ASan włącza stack-use-after-return sprawdzanie w czasie wykonywania. Wymaga ./fsanitize-address-use-after-return Aby uzyskać więcej informacji, zobacz stack-use-after-return. |
exitcode |
1 | Zastępuje stan zakończenia programu tą wartością, jeśli usługa ASan wykryje błąd. |
external_symbolizer_path |
"" | Ścieżka do symbolu zewnętrznego. Jeśli jest pusty, ASan wyszukuje $PATH symbol. |
fast_unwind_on_malloc |
true |
Jeśli jest dostępna, usługa ASan używa szybkiego odwijacza opartego na wskaźnikach ramek w systemie malloc/free. |
halt_on_error |
true |
Niewspierane. Użyj continue_on_error zamiast tego. |
handle_segv |
true |
Jeśli trueusługa ASan obsługuje błędy SEGV . |
handle_sigfpe |
true |
Jeśli trueusługa ASan obsługuje błędy SIGFPE . |
handle_sigill |
true |
Jeśli trueusługa ASan obsługuje błędy SIGILL . |
help |
false |
W przypadku trueusługi ASan opcje flagi są wyświetlane w konsoli programu . |
iat_overwrite |
error |
error — zgłasza błąd za każdym razem, gdy zostanie wykryte zastąpienie.protect — próbuje uniknąć używania zastąpionej definicji.ignore — nie próbuje poprawić żadnych zastąpionych funkcji. Aby uzyskać więcej informacji, zobacz iat_overwrite. |
include_if_exists |
"" | Odczytuje opcje z określonego pliku. Usługa ASan nie kończy się niepowodzeniem, jeśli plik nie istnieje. |
intercept_strpbrk |
true |
Jeśli trueprogram używa niestandardowych otoek, strpbrk aby znaleźć więcej błędów. |
intercept_strspn |
true |
Jeśli trueprogram używa niestandardowych otoek dla strspn elementu i strcspn w celu znalezienia większej liczby błędów. |
intercept_strstr |
true |
Jeśli trueprogram używa niestandardowych otoek dla strstr elementu i strcasestr w celu znalezienia większej liczby błędów. |
malloc_context_size |
1 | Maksymalna liczba ramek stosu do zachowania dla każdej alokacji/przydziału. |
malloc_fill_byte |
0xbe |
Wartość używana do wypełnienia nowo przydzielonej pamięci. |
max_malloc_fill_size |
4096 | ASan alokator wypełnia alokację malloc_fill_byte maksymalnie do max_malloc_fill_size wywołania metody malloc. |
max_redzone |
2048 | Maksymalny rozmiar (w bajtach) redzone wokół obiektów sterty. |
new_delete_type_mismatch |
true |
Zgłoś błędy dotyczące niezgodności między rozmiarem i newdelete. Aby uzyskać więcej informacji, zobacz new-delete-type-mismatch. |
poison_heap |
true |
Jeśli true, zatruj pamięć sterty na alokacji i cofanie alokacji.
false jest przydatny do porównywania alokatora lub instrumentatora. |
poison_partial |
true |
Jeśli true, zatruj częściowo adresowalne 8 bajtów wyrównane wyrazy. Ta flaga wpływa na stertę i globalne, ale nie stosu. |
print_cmdline |
false |
Wydrukuj wiersz polecenia po awarii. Po continue_on_error ustawieniu >= 1 wyświetla bieżący katalog roboczy i jest UTF-16 świadomy. |
print_legend |
true |
Jeśli true, wyświetl legendę mapy pamięci w tle, aby towarzyszyć raportowi ASan. |
print_stats |
false |
Jeśli true, wydrukuj statystyki alokatora po wydrukowaniu raportu ASan. |
print_summary |
true |
Jeśli falseprogram wyłączy wyświetlanie podsumowań błędów towarzyszących raportom o błędach. |
quarantine_size_mb |
-1 | Rozmiar (w mb) kwarantanny używany do wykrywania use-after-free błędów. Niższa wartość może zwiększyć prawdopodobieństwo fałszywie ujemnych wartości. |
redzone |
16 | Minimalny rozmiar (w bajtach) redzone wokół obiektów sterty. Wymaganie: redzone >= 16 i musi być mocą dwóch. |
replace_str |
true |
Jeśli trueprogram używa niestandardowych otoek i zamian dla libc funkcji ciągów, aby znaleźć więcej błędów. |
report_globals |
1 | Jak reagować na przepełnienie buforu dla globalnych: 0 — nie wykrywaj przepełnienia buforu na globalne. 1 — wykrywanie przepełnienia buforu. 2 — wykrywanie przepełnienia buforu i drukowanie zarejestrowanych danych globalnych. |
sleep_before_dying |
0 | Liczba sekund uśpienia między drukowaniem raportu o błędach a kończeniem programu. |
stack_trace_format |
DEFAULT |
Formatowanie ciągu używanego do renderowania ramek stosu.
DEFAULT
-
#%n %p %F %L. Lista dostępnych symboli zastępczych:%% - reprezentuje '%' znak%n - numer ramki (kopia frame_no)%p - PC%m - ścieżka do modułu%o - przesunięcie w module%f - nazwa funkcji%q - jeśli jest dostępna, przesunięcie w funkcji%s - ścieżka do pliku źródłowego%l - wiersz w pliku źródłowym%c — kolumna w pliku źródłowym%F - jeśli funkcja jest znana, ASan drukuje in <func name> po nim przesunięcie w tej funkcji, jeśli źródło jest nieznane%S - ASan drukuje plik/wiersz/informacje o kolumnie%L — Jeśli informacje o pliku są dostępne, usługa ASan drukuje nazwę pliku, wiersz i kolumnę. Jeśli informacje o module są dostępne, usługa ASan wyświetla nazwę modułu, przesunięcie i architekturę. Jeśli żadna z nich nie jest dostępna, usługa ASan drukuje (<unknown module>)%M - Jeśli jest znany, ASan drukuje nazwę podstawową modułu i przesunięcie, lub PC |
strict_memcmp |
true |
Jeśli trueprogram zakłada, że memcmp(p1, p2, n) zawsze odczytuje bajty n przed porównaniem p1 i p2. |
strict_string_checks |
false |
Jeśli trueprogram sprawdza, czy argumenty ciągu są poprawnie zakończone o wartości null. |
strip_path_prefix |
"" | Usuwa ten prefiks ze ścieżek plików w raportach o błędach. |
symbolize |
true |
Jeśli trueużyj polecenia llvm-symbolizer , aby przekształcić adresy wirtualne w lokalizacje plików lub wierszy. |
symbolize_inline_frames |
true |
Drukuj wznawiane ramki w stosach. |
verbosity |
0 | Poziom szczegółowości: 0 — domyślna szczegółowość. 1 — więcej danych wyjściowych. 2 — jeszcze więcej danych wyjściowych. 3 — maksymalna szczegółowość. |
windows_fast_fail_on_error |
false |
Jeśli trueproces może zakończyć się __fastfail(71) po wydrukowaniu raportu o błędach. Aby uzyskać więcej informacji, zobacz windows_fast_fail_on_error. |
windows_hook_legacy_allocators |
true |
Jeśli trueparametr umożliwia łączenie funkcji (Global/Local)().Alloc/Free/Size/ReAlloc/Lock/Unlock |
Zobacz także
AddressSanitizer — omówienie
Rozwiązywanie znanych problemów z programemSanitizer
Dokumentacja języka i kompilacji narzędzia AddressSanitizer
Bajty w tle addressSanitizer
AddressSanitizer — chmura lub testowanie rozproszone
Integracja debugera AddressSanitizer
Przykłady błędów addressSanitizer