Partager via


AddressSanitizer Runtime Options

Le tableau suivant répertorie les options de AddressSanitizer. Activez-les via la variable d’environnement ASAN_OPTIONS ou en remplaçant la __asan_default_options() fonction utilisateur décrite ici.

Note

Ces descriptions comptent des comportements spécifiques à Microsoft Visual C++ (MSVC), qui peuvent varier des options d’exécution de Clang.

Flag Valeur par défaut Descriptif
abort_on_error false Si true, ASan appelle abort() au lieu d’imprimer _exit() le rapport d’erreur.
alloc_dealloc_mismatch false Détecte les opérations de mémoire incompatibles telles que malloc/delete, new[]/freeetc.
allocator_frees_and_returns_null_on_realloc_zero true S’il est défini truesur , realloc(p, 0) est le même que free(p) par défaut (qui est identique à la norme POSIX). Si la valeur est définie false, realloc(p, 0) retourne un pointeur vers un espace alloué qui ne peut pas être utilisé.
allocator_may_return_null false Si true, l’allocateur retourne nullptr en dehors de la mémoire. Au lieu de se bloquer, ASan émet un avertissement sur l’échec et l’exécution de l’allocator se poursuit.
allow_user_poisoning true Si true, vous pouvez marquer manuellement les régions de mémoire comme empoisonnées ou non mises en file d’attente à l’aide de l’interface d’empoisonnement de AddressSanitizer manuelle.
check_initialization_order false Si true, tente d’intercepter les problèmes d’ordre d’initialisation.
continue_on_error 0 Permet à une application de continuer à s’exécuter tout en signalant des erreurs de sécurité de la mémoire.
0 désactivé.
1 activé ; les erreurs sont envoyées à stdout.
2 activés ; les erreurs sont envoyées à stderr.
Pour plus d’informations, consultez continue_on_error.
detect_container_overflow true Si true, respectez les annotations de dépassement de capacité du conteneur. Pour plus d’informations, consultez ContainerOverflow.
detect_invalid_pointer_pairs false Sitrue, ASan détecte des opérations telles que <, <=>, >=et - sur des paires de pointeurs non valides telles que des pointeurs appartenant à différents objets.
detect_stack_use_after_return false Expérimental. Si true, ASan active la stack-use-after-return vérification au moment de l’exécution. Nécessite /fsanitize-address-use-after-return. Pour plus d’informations, consultez stack-use-after-return.
exitcode 1 Remplace l’état de sortie du programme par cette valeur si ASan trouve une erreur.
external_symbolizer_path "" Chemin du symbolisateur externe. S’il est vide, ASan recherche $PATH le symbolisateur.
fast_unwind_on_malloc true Si disponible, ASan utilise le déroulage rapide basé sur un pointeur d’image sur malloc/free.
halt_on_error true Non pris en charge. Utilisez continue_on_error à la place.
handle_segv true Si true, ASan gère les SEGV erreurs.
handle_sigfpe true Si true, ASan gère les SIGFPE erreurs.
handle_sigill true Si true, ASan gère les SIGILL erreurs.
help false Si true, ASan imprime les options d’indicateur dans la console.
iat_overwrite error error - signale une erreur chaque fois qu’un remplacement est détecté.
protect - tente d’éviter d’utiliser la définition remplacée.
ignore - n’essaie pas de corriger les fonctions remplacées. Pour plus d’informations, consultez iat_overwrite.
include_if_exists "" Lit les options du fichier spécifié. ASan ne échoue pas si le fichier n’existe pas.
intercept_strpbrk true Si true, utilise des wrappers personnalisés pour strpbrk trouver d’autres erreurs.
intercept_strspn true Si true, utilise des wrappers personnalisés pour strspn et strcspn pour trouver d’autres erreurs.
intercept_strstr true Si true, utilise des wrappers personnalisés pour strstr et strcasestr pour trouver d’autres erreurs.
malloc_context_size 1 Nombre maximal d’images de pile à conserver pour chaque allocation/désallocation.
malloc_fill_byte 0xbe Valeur utilisée pour remplir la mémoire nouvellement allouée.
max_malloc_fill_size 4096 L’allocateur ASan remplit une allocation malloc_fill_byte jusqu’à max_malloc_fill_size un appel à malloc.
max_redzone 2 048 Taille maximale (en octets) des zones rouges autour des objets tas.
new_delete_type_mismatch true Signaler des erreurs sur l’incompatibilité entre la taille de new et delete. Pour plus d’informations, consultez new-delete-type-mismatch.
poison_heap true Si true, empoisonner la mémoire du tas sur l’allocation et la désallocation. false est utile pour évaluer l’allocateur ou l’instrumentateur.
poison_partial true Si true, poison partiellement adressable mots alignés sur 8 octets. Cet indicateur affecte le tas et les mémoires tampons globales, mais pas les mémoires tampons de pile.
print_cmdline false Imprimez la ligne de commande en cas d’incident. Avec continue_on_error set >= 1, imprime le répertoire de travail actuel et est UTF-16 conscient.
print_legend true Si true, imprimez la légende de la carte de mémoire fantôme pour accompagner le rapport ASan.
print_stats false Si true, imprimez les statistiques d’allocator après l’impression du rapport ASan.
print_summary true Si false, désactive l’affichage des résumés d’erreurs qui accompagnent les rapports d’erreurs.
quarantine_size_mb -1 Taille (en Mo) de la quarantaine utilisée pour détecter les use-after-free erreurs. Une valeur inférieure peut augmenter la probabilité de faux négatifs.
redzone 16 Taille minimale (en octets) des zones rouges autour des objets tas. Exigence : redzone >= 16 et doit être une puissance de deux.
replace_str true Si true, utilise des wrappers personnalisés et des remplacements pour libc les fonctions de chaîne pour trouver d’autres erreurs.
report_globals 1 Comment répondre au dépassement de mémoire tampon pour les globals :
Ne détectez pas le dépassement de mémoire tampon sur les globals.
1 : détecter le dépassement de mémoire tampon.
2 : détecter le dépassement de mémoire tampon et imprimer les données globales inscrites.
sleep_before_dying 0 Nombre de secondes de veille entre l’impression d’un rapport d’erreur et la fin du programme.
stack_trace_format DEFAULT Chaîne de format utilisée pour afficher les trames de pile. DEFAULT - #%n %p %F %L. Liste des espaces réservés disponibles :
%% - représente un '%' caractère
%n - numéro de trame (copie de frame_no)
%p - PC
%m - chemin d’accès au module
%o - décalage dans le module
%f - Nom de la fonction
%q - si disponible, offset dans la fonction
%s - chemin d’accès au fichier source
%l - ligne dans le fichier source
%c - colonne dans le fichier source
%F - si la fonction est connue, ASan imprime in <func name> suivi du décalage dans cette fonction si la source est inconnue
%S - ASan imprime les informations de fichier/ligne/colonne
%L - Si des informations de fichier sont disponibles, ASan imprime le nom de fichier, la ligne et la colonne. Si des informations sur le module sont disponibles, ASan imprime le nom, le décalage et l’architecture du module. Si aucune d’elles n’est disponible, ASan imprime (<unknown module>)
%M - Si connu, ASan imprime le nom de base et le décalage du module, ou PC
strict_memcmp true Si true, part du principe que memcmp(p1, p2, n) toujours lit les octets n avant de comparer p1 et p2.
strict_string_checks false Si true, vérifie que les arguments de chaîne sont correctement arrêtés par null.
strip_path_prefix "" Supprime ce préfixe des chemins d’accès aux fichiers dans les rapports d’erreurs.
symbolize true Si true, utilisez la llvm-symbolizer méthode pour transformer les adresses virtuelles en emplacements de fichier ou de ligne.
symbolize_inline_frames true Imprimer des cadres inline dans des empilements.
verbosity 0 Niveau de détail :
0 - verbe par défaut.
1 - plus de sortie.
2 - encore plus de sortie.
3 - détail maximal.
windows_fast_fail_on_error false Si true, le processus peut se terminer par un __fastfail(71) après l’impression du rapport d’erreur. Pour plus d’informations, consultez windows_fast_fail_on_error.
windows_hook_legacy_allocators true Si true, active le raccordement des fonctions (Global/Local)(Alloc/Free/Size/ReAlloc/Lock/Unlock).

Voir aussi

Vue d’ensemble de AddressSanitizer
Résoudre les problèmes connus liés à AddressSanitizer
Référence de build et de langage AddressSanitizer
Octets d’ombre AddressSanitizer
Test cloud ou distribué AddressSanitizer
Intégration du débogueur AddressSanitizer
Exemples d’erreur AddressSanitizer