brintos

brintos / llvm-project-archived public Read only

0
0
Text · 4.1 KiB · 058a045 Raw
94 lines · plain
1//===-- hwasan_flags.inc ----------------------------------------*- C++ -*-===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8//9// Hwasan runtime flags.10//11//===----------------------------------------------------------------------===//12#ifndef HWASAN_FLAG13# error "Define HWASAN_FLAG prior to including this file!"14#endif15 16// HWASAN_FLAG(Type, Name, DefaultValue, Description)17// See COMMON_FLAG in sanitizer_flags.inc for more details.18 19HWASAN_FLAG(bool, verbose_threads, false,20            "inform on thread creation/destruction")21HWASAN_FLAG(bool, tag_in_malloc, true, "")22HWASAN_FLAG(bool, tag_in_free, true, "")23HWASAN_FLAG(bool, print_stats, false, "")24HWASAN_FLAG(bool, halt_on_error, true, "")25HWASAN_FLAG(bool, atexit, false, "")26HWASAN_FLAG(27    bool, print_live_threads_info, true,28    "If set, prints the remaining threads in report as an extra information.")29 30// Test only flag to disable malloc/realloc/free memory tagging on startup.31// Tagging can be reenabled with __hwasan_enable_allocator_tagging().32HWASAN_FLAG(bool, disable_allocator_tagging, false, "")33 34// If false, use simple increment of a thread local counter to generate new35// tags.36HWASAN_FLAG(bool, random_tags, true, "")37 38HWASAN_FLAG(39    int, max_malloc_fill_size, 0,40    "HWASan allocator flag. max_malloc_fill_size is the maximal amount of "41    "bytes that will be filled with malloc_fill_byte on malloc.")42 43HWASAN_FLAG(bool, free_checks_tail_magic, 1,44    "If set, free() will check the magic values "45    "after the allocated object "46    "if the allocation size is not a divident of the granule size")47HWASAN_FLAG(48    int, max_free_fill_size, 0,49    "HWASan allocator flag. max_free_fill_size is the maximal amount of "50    "bytes that will be filled with free_fill_byte during free.")51HWASAN_FLAG(int, malloc_fill_byte, 0xbe,52          "Value used to fill the newly allocated memory.")53HWASAN_FLAG(int, free_fill_byte, 0x55,54          "Value used to fill deallocated memory.")55HWASAN_FLAG(int, heap_history_size, 1023,56          "The number of heap (de)allocations remembered per thread. "57          "Affects the quality of heap-related reports, but not the ability "58          "to find bugs.")59HWASAN_FLAG(bool, export_memory_stats, true,60            "Export up-to-date memory stats through /proc")61HWASAN_FLAG(int, stack_history_size, 1024,62            "The number of stack frames remembered per thread. "63            "Affects the quality of stack-related reports, but not the ability "64            "to find bugs.")65 66// Malloc / free bisection. Only tag malloc and free calls when a hash of67// allocation size and stack trace is between malloc_bisect_left and68// malloc_bisect_right (both inclusive). [0, 0] range is special and disables69// bisection (i.e. everything is tagged). Once the range is narrowed down70// enough, use malloc_bisect_dump to see interesting allocations.71HWASAN_FLAG(uptr, malloc_bisect_left, 0,72            "Left bound of malloc bisection, inclusive.")73HWASAN_FLAG(uptr, malloc_bisect_right, 0,74            "Right bound of malloc bisection, inclusive.")75HWASAN_FLAG(bool, malloc_bisect_dump, false,76            "Print all allocations within [malloc_bisect_left, "77            "malloc_bisect_right] range ")78 79 80// Exit if we fail to enable the AArch64 kernel ABI relaxation which allows81// tagged pointers in syscalls.  This is the default, but being able to disable82// that behaviour is useful for running the testsuite on more platforms (the83// testsuite can run since we manually ensure any pointer arguments to syscalls84// are untagged before the call.85HWASAN_FLAG(bool, fail_without_syscall_abi, true,86            "Exit if fail to request relaxed syscall ABI.")87 88HWASAN_FLAG(89    uptr, fixed_shadow_base, -1,90    "If not -1, HWASan will attempt to allocate the shadow at this address, "91    "instead of choosing one dynamically."92    "Tip: this can be combined with the compiler option, "93    "-hwasan-mapping-offset, to optimize the instrumentation.")94