Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
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