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