1 //===-- sanitizer_flags.h ---------------------------------------*- C++ -*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 // 10 // This file is a part of ThreadSanitizer/AddressSanitizer runtime. 11 // 12 //===----------------------------------------------------------------------===// 13 14 #ifndef SANITIZER_FLAGS_H 15 #define SANITIZER_FLAGS_H 16 17 #include "sanitizer_internal_defs.h" 18 19 namespace __sanitizer { 20 21 void ParseFlag(const char *env, bool *flag, 22 const char *name, const char *descr); 23 void ParseFlag(const char *env, int *flag, 24 const char *name, const char *descr); 25 void ParseFlag(const char *env, uptr *flag, 26 const char *name, const char *descr); 27 void ParseFlag(const char *env, const char **flag, 28 const char *name, const char *descr); 29 30 struct CommonFlags { 31 bool symbolize; 32 const char *external_symbolizer_path; 33 bool allow_addr2line; 34 const char *strip_path_prefix; 35 bool fast_unwind_on_fatal; 36 bool fast_unwind_on_malloc; 37 bool handle_ioctl; 38 int malloc_context_size; 39 const char *log_path; 40 int verbosity; 41 bool detect_leaks; 42 bool leak_check_at_exit; 43 bool allocator_may_return_null; 44 bool print_summary; 45 bool check_printf; 46 bool handle_segv; 47 bool allow_user_segv_handler; 48 bool use_sigaltstack; 49 bool detect_deadlocks; 50 uptr clear_shadow_mmap_threshold; 51 const char *color; 52 bool legacy_pthread_cond; 53 bool intercept_tls_get_addr; 54 bool help; 55 uptr mmap_limit_mb; 56 bool coverage; 57 bool coverage_direct; 58 const char *coverage_dir; 59 bool full_address_space; 60 }; 61 62 inline CommonFlags *common_flags() { 63 extern CommonFlags common_flags_dont_use; 64 return &common_flags_dont_use; 65 } 66 67 void SetCommonFlagsDefaults(CommonFlags *f); 68 void ParseCommonFlagsFromString(CommonFlags *f, const char *str); 69 void PrintFlagDescriptions(); 70 71 } // namespace __sanitizer 72 73 #endif // SANITIZER_FLAGS_H 74