diff options
Diffstat (limited to 'source/Host/common/ThreadLauncher.cpp')
| -rw-r--r-- | source/Host/common/ThreadLauncher.cpp | 10 | 
1 files changed, 10 insertions, 0 deletions
| diff --git a/source/Host/common/ThreadLauncher.cpp b/source/Host/common/ThreadLauncher.cpp index ec7da325bf92..c19a23361d81 100644 --- a/source/Host/common/ThreadLauncher.cpp +++ b/source/Host/common/ThreadLauncher.cpp @@ -38,6 +38,16 @@ ThreadLauncher::LaunchThread(llvm::StringRef name, lldb::thread_func_t thread_fu          error.SetError(::GetLastError(), eErrorTypeWin32);  #else + +    // ASAN instrumentation adds a lot of bookkeeping overhead on stack frames. +#if __has_feature(address_sanitizer) +    const size_t eight_megabytes = 8 * 1024 * 1024; +    if (min_stack_byte_size < eight_megabytes) +    { +        min_stack_byte_size += eight_megabytes; +    } +#endif +      pthread_attr_t *thread_attr_ptr = NULL;      pthread_attr_t thread_attr;      bool destroy_attr = false; | 
