1//===-- tsan_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-exception
6//
7//===----------------------------------------------------------------------===//
8//
9// TSan runtime flags.
10//
11//===----------------------------------------------------------------------===//
12#ifndef TSAN_FLAG
13# error "Define TSAN_FLAG prior to including this file!"
14#endif
15
16// TSAN_FLAG(Type, Name, DefaultValue, Description)
17// See COMMON_FLAG in sanitizer_flags.inc for more details.
18
19TSAN_FLAG(bool, enable_annotations, true,
20 "Enable dynamic annotations, otherwise they are no-ops.")
21// Suppress a race report if we've already output another race report
22// with the same stack.
23TSAN_FLAG(bool, suppress_equal_stacks, true,
24 "Suppress a race report if we've already output another race report "
25 "with the same stack.")
26TSAN_FLAG(bool, report_bugs, true,
27 "Turns off bug reporting entirely (useful for benchmarking).")
28TSAN_FLAG(bool, report_thread_leaks, true, "Report thread leaks at exit?")
29TSAN_FLAG(bool, report_destroy_locked, true,
30 "Report destruction of a locked mutex?")
31TSAN_FLAG(bool, report_mutex_bugs, true,
32 "Report incorrect usages of mutexes and mutex annotations?")
33TSAN_FLAG(bool, report_signal_unsafe, true,
34 "Report violations of async signal-safety "
35 "(e.g. malloc() call from a signal handler).")
36TSAN_FLAG(bool, report_atomic_races, true,
37 "Report races between atomic and plain memory accesses.")
38TSAN_FLAG(
39 bool, force_seq_cst_atomics, false,
40 "If set, all atomics are effectively sequentially consistent (seq_cst), "
41 "regardless of what user actually specified.")
42TSAN_FLAG(bool, force_background_thread, false,
43 "If set, eagerly launch a background thread for memory reclamation "
44 "instead of waiting for a user call to pthread_create.")
45TSAN_FLAG(bool, halt_on_error, false, "Exit after first reported error.")
46TSAN_FLAG(int, atexit_sleep_ms, 1000,
47 "Sleep in main thread before exiting for that many ms "
48 "(useful to catch \"at exit\" races).")
49TSAN_FLAG(const char *, profile_memory, "",
50 "If set, periodically write memory profile to that file.")
51TSAN_FLAG(int, flush_memory_ms, 0, "Flush shadow memory every X ms.")
52TSAN_FLAG(int, flush_symbolizer_ms, 5000, "Flush symbolizer caches every X ms.")
53TSAN_FLAG(
54 int, memory_limit_mb, 0,
55 "Resident memory limit in MB to aim at."
56 "If the process consumes more memory, then TSan will flush shadow memory.")
57TSAN_FLAG(bool, stop_on_start, false,
58 "Stops on start until __tsan_resume() is called (for debugging).")
59TSAN_FLAG(bool, running_on_valgrind, false,
60 "Controls whether RunningOnValgrind() returns true or false.")
61TSAN_FLAG(
62 uptr, history_size, 0,
63 "Per-thread history size,"
64 " controls how many extra previous memory accesses are remembered per thread.")
65TSAN_FLAG(int, io_sync, 1,
66 "Controls level of synchronization implied by IO operations. "
67 "0 - no synchronization "
68 "1 - reasonable level of synchronization (write->read)"
69 "2 - global synchronization of all IO operations.")
70TSAN_FLAG(bool, die_after_fork, true,
71 "Die after multi-threaded fork if the child creates new threads.")
72TSAN_FLAG(const char *, suppressions, "", "Suppressions file name.")
73TSAN_FLAG(bool, ignore_interceptors_accesses, SANITIZER_APPLE ? true : false,
74 "Ignore reads and writes from all interceptors.")
75TSAN_FLAG(bool, ignore_noninstrumented_modules, SANITIZER_APPLE ? true : false,
76 "Interceptors should only detect races when called from instrumented "
77 "modules.")
78TSAN_FLAG(bool, shared_ptr_interceptor, true,
79 "Track atomic reference counting in libc++ shared_ptr and weak_ptr.")
80TSAN_FLAG(bool, print_full_thread_history, false,
81 "If set, prints thread creation stacks for the threads involved in "
82 "the report and their ancestors up to the main thread.")
83

Provided by KDAB

Privacy Policy
Learn to use CMake with our Intro Training
Find out more

source code of compiler-rt/lib/tsan/rtl/tsan_flags.inc