[Lldb-commits] [PATCH] D122975: parallelize calling of Module::PreloadSymbols()

Jonas Devlieghere via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Tue Apr 5 13:08:31 PDT 2022


JDevlieghere added a comment.

After applying this patch I started seeing data races reported by TSan when running the shell tests (`check-lldb-shell`). It seems to happen to different tests on different runs but the backtraces are the same.

  WARNING: ThreadSanitizer: data race (pid=40880)
    Read of size 1 at 0x0001139ae0a8 by thread T3 (mutexes: write M4094, write M119908344493401136):
      #0 llvm::itanium_demangle::AbstractManglingParser<llvm::itanium_demangle::ManglingParser<(anonymous namespace)::DefaultAllocator>, (anonymous namespace)::DefaultAllocator>::parseOperatorEncoding() ItaniumDemangle.h:3033 (liblldb.15.0.0git.dylib:arm64+0x555e668)
      #1 llvm::itanium_demangle::AbstractManglingParser<llvm::itanium_demangle::ManglingParser<(anonymous namespace)::DefaultAllocator>, (anonymous namespace)::DefaultAllocator>::parseOperatorName(llvm::itanium_demangle::AbstractManglingParser<llvm::itanium_demangle::ManglingParser<(anonymous namespace)::DefaultAllocator>, (anonymous namespace)::DefaultAllocator>::NameState*) ItaniumDemangle.h:3060 (liblldb.15.0.0git.dylib:arm64+0x55628dc)
      #2 llvm::itanium_demangle::AbstractManglingParser<llvm::itanium_demangle::ManglingParser<(anonymous namespace)::DefaultAllocator>, (anonymous namespace)::DefaultAllocator>::parseUnqualifiedName(llvm::itanium_demangle::AbstractManglingParser<llvm::itanium_demangle::ManglingParser<(anonymous namespace)::DefaultAllocator>, (anonymous namespace)::DefaultAllocator>::NameState*, llvm::itanium_demangle::Node*, llvm::itanium_demangle::ModuleName*) ItaniumDemangle.h:2803 (liblldb.15.0.0git.dylib:arm64+0x5559ff0)
      #3 llvm::itanium_demangle::AbstractManglingParser<llvm::itanium_demangle::ManglingParser<(anonymous namespace)::DefaultAllocator>, (anonymous namespace)::DefaultAllocator>::parseName(llvm::itanium_demangle::AbstractManglingParser<llvm::itanium_demangle::ManglingParser<(anonymous namespace)::DefaultAllocator>, (anonymous namespace)::DefaultAllocator>::NameState*) ItaniumDemangle.h:2666 (liblldb.15.0.0git.dylib:arm64+0x5556c08)
      #4 llvm::itanium_demangle::AbstractManglingParser<llvm::itanium_demangle::ManglingParser<(anonymous namespace)::DefaultAllocator>, (anonymous namespace)::DefaultAllocator>::parseEncoding() ItaniumDemangle.h:5038 (liblldb.15.0.0git.dylib:arm64+0x555108c)
      #5 llvm::itanium_demangle::AbstractManglingParser<llvm::itanium_demangle::ManglingParser<(anonymous namespace)::DefaultAllocator>, (anonymous namespace)::DefaultAllocator>::parse() ItaniumDemangle.h:5449 (liblldb.15.0.0git.dylib:arm64+0x554b9b0)
      #6 llvm::ItaniumPartialDemangler::partialDemangle(char const*) ItaniumDemangle.cpp:385 (liblldb.15.0.0git.dylib:arm64+0x554c2a0)
      #7 lldb_private::RichManglingContext::FromItaniumName(lldb_private::ConstString) RichManglingContext.cpp:42 (liblldb.15.0.0git.dylib:arm64+0x2df084)
      #8 lldb_private::Mangled::GetRichManglingInfo(lldb_private::RichManglingContext&, bool (*)(llvm::StringRef, lldb_private::Mangled::ManglingScheme)) Mangled.cpp:217 (liblldb.15.0.0git.dylib:arm64+0x2bfec4)
      #9 lldb_private::Symtab::InitNameIndexes() Symtab.cpp:331 (liblldb.15.0.0git.dylib:arm64+0x41aaa0)
      #10 lldb_private::Symtab::PreloadSymbols() Symtab.cpp:456 (liblldb.15.0.0git.dylib:arm64+0x41ba4c)
      #11 lldb_private::Module::PreloadSymbols() Module.cpp:1378 (liblldb.15.0.0git.dylib:arm64+0x2c74d4)
      #12 std::__1::__function::__func<std::__1::__bind<lldb_private::Target::ModulesDidLoad(lldb_private::ModuleList&)::$_0&, unsigned long&>, std::__1::allocator<std::__1::__bind<lldb_private::Target::ModulesDidLoad(lldb_private::ModuleList&)::$_0&, unsigned long&> >, void ()>::operator()() function.h:352 (liblldb.15.0.0git.dylib:arm64+0x4d73e0)
      #13 std::__1::__function::__func<llvm::ThreadPool::createTaskAndFuture(std::__1::function<void ()>)::'lambda'(), std::__1::allocator<llvm::ThreadPool::createTaskAndFuture(std::__1::function<void ()>)::'lambda'()>, void ()>::operator()() function.h:352 (liblldb.15.0.0git.dylib:arm64+0x4d6920)
      #14 void* llvm::thread::ThreadProxy<std::__1::tuple<llvm::ThreadPool::grow(int)::$_0> >(void*) thread.h:60 (liblldb.15.0.0git.dylib:arm64+0x9daa0c)
  
    Previous write of size 1 at 0x0001139ae0a8 by thread T6 (mutexes: write M26458652249517616, write M208572962157285296):
      #0 llvm::itanium_demangle::AbstractManglingParser<llvm::itanium_demangle::ManglingParser<(anonymous namespace)::DefaultAllocator>, (anonymous namespace)::DefaultAllocator>::parseOperatorEncoding() ItaniumDemangle.h:3034 (liblldb.15.0.0git.dylib:arm64+0x555e720)
      #1 llvm::itanium_demangle::AbstractManglingParser<llvm::itanium_demangle::ManglingParser<(anonymous namespace)::DefaultAllocator>, (anonymous namespace)::DefaultAllocator>::parseOperatorName(llvm::itanium_demangle::AbstractManglingParser<llvm::itanium_demangle::ManglingParser<(anonymous namespace)::DefaultAllocator>, (anonymous namespace)::DefaultAllocator>::NameState*) ItaniumDemangle.h:3060 (liblldb.15.0.0git.dylib:arm64+0x55628dc)
      #2 llvm::itanium_demangle::AbstractManglingParser<llvm::itanium_demangle::ManglingParser<(anonymous namespace)::DefaultAllocator>, (anonymous namespace)::DefaultAllocator>::parseUnqualifiedName(llvm::itanium_demangle::AbstractManglingParser<llvm::itanium_demangle::ManglingParser<(anonymous namespace)::DefaultAllocator>, (anonymous namespace)::DefaultAllocator>::NameState*, llvm::itanium_demangle::Node*, llvm::itanium_demangle::ModuleName*) ItaniumDemangle.h:2803 (liblldb.15.0.0git.dylib:arm64+0x5559ff0)
      #3 llvm::itanium_demangle::AbstractManglingParser<llvm::itanium_demangle::ManglingParser<(anonymous namespace)::DefaultAllocator>, (anonymous namespace)::DefaultAllocator>::parseName(llvm::itanium_demangle::AbstractManglingParser<llvm::itanium_demangle::ManglingParser<(anonymous namespace)::DefaultAllocator>, (anonymous namespace)::DefaultAllocator>::NameState*) ItaniumDemangle.h:2666 (liblldb.15.0.0git.dylib:arm64+0x5556c08)
      #4 llvm::itanium_demangle::AbstractManglingParser<llvm::itanium_demangle::ManglingParser<(anonymous namespace)::DefaultAllocator>, (anonymous namespace)::DefaultAllocator>::parseEncoding() ItaniumDemangle.h:5038 (liblldb.15.0.0git.dylib:arm64+0x555108c)
      #5 llvm::itanium_demangle::AbstractManglingParser<llvm::itanium_demangle::ManglingParser<(anonymous namespace)::DefaultAllocator>, (anonymous namespace)::DefaultAllocator>::parse() ItaniumDemangle.h:5449 (liblldb.15.0.0git.dylib:arm64+0x554b9b0)
      #6 llvm::ItaniumPartialDemangler::partialDemangle(char const*) ItaniumDemangle.cpp:385 (liblldb.15.0.0git.dylib:arm64+0x554c2a0)
      #7 lldb_private::RichManglingContext::FromItaniumName(lldb_private::ConstString) RichManglingContext.cpp:42 (liblldb.15.0.0git.dylib:arm64+0x2df084)
      #8 lldb_private::Mangled::GetRichManglingInfo(lldb_private::RichManglingContext&, bool (*)(llvm::StringRef, lldb_private::Mangled::ManglingScheme)) Mangled.cpp:217 (liblldb.15.0.0git.dylib:arm64+0x2bfec4)
      #9 lldb_private::Symtab::InitNameIndexes() Symtab.cpp:331 (liblldb.15.0.0git.dylib:arm64+0x41aaa0)
      #10 lldb_private::Symtab::PreloadSymbols() Symtab.cpp:456 (liblldb.15.0.0git.dylib:arm64+0x41ba4c)
      #11 lldb_private::Module::PreloadSymbols() Module.cpp:1378 (liblldb.15.0.0git.dylib:arm64+0x2c74d4)
      #12 std::__1::__function::__func<std::__1::__bind<lldb_private::Target::ModulesDidLoad(lldb_private::ModuleList&)::$_0&, unsigned long&>, std::__1::allocator<std::__1::__bind<lldb_private::Target::ModulesDidLoad(lldb_private::ModuleList&)::$_0&, unsigned long&> >, void ()>::operator()() function.h:352 (liblldb.15.0.0git.dylib:arm64+0x4d73e0)
      #13 std::__1::__function::__func<llvm::ThreadPool::createTaskAndFuture(std::__1::function<void ()>)::'lambda'(), std::__1::allocator<llvm::ThreadPool::createTaskAndFuture(std::__1::function<void ()>)::'lambda'()>, void ()>::operator()() function.h:352 (liblldb.15.0.0git.dylib:arm64+0x4d6920)
      #14 void* llvm::thread::ThreadProxy<std::__1::tuple<llvm::ThreadPool::grow(int)::$_0> >(void*) thread.h:60 (liblldb.15.0.0git.dylib:arm64+0x9daa0c)
  
    Location is global 'llvm::itanium_demangle::AbstractManglingParser<llvm::itanium_demangle::ManglingParser<(anonymous namespace)::DefaultAllocator>, (anonymous namespace)::DefaultAllocator>::parseOperatorEncoding()::Done' at 0x0001139ae0a8 (liblldb.15.0.0git.dylib+0x83360a8)
  
    Mutex M4094 (0x00010890b130) created at:
      #0 pthread_mutex_init <null>:16654816 (libclang_rt.tsan_osx_dynamic.dylib:arm64e+0x3134c)
      #1 std::__1::recursive_mutex::recursive_mutex() <null>:16654816 (libc++.1.dylib:arm64e+0xf24c)
      #2 lldb_private::Module::Module(lldb_private::ModuleSpec const&) Module.cpp:132 (liblldb.15.0.0git.dylib:arm64+0x2c186c)
      #3 lldb_private::ModuleList::GetSharedModule(lldb_private::ModuleSpec const&, std::__1::shared_ptr<lldb_private::Module>&, lldb_private::FileSpecList const*, llvm::SmallVectorImpl<std::__1::shared_ptr<lldb_private::Module> >*, bool*, bool) ModuleList.cpp:830 (liblldb.15.0.0git.dylib:arm64+0x2ccf24)
      #4 lldb_private::PlatformDarwin::GetSharedModuleWithLocalCache(lldb_private::ModuleSpec const&, std::__1::shared_ptr<lldb_private::Module>&, lldb_private::FileSpecList const*, llvm::SmallVectorImpl<std::__1::shared_ptr<lldb_private::Module> >*, bool*) PlatformDarwin.cpp:262 (liblldb.15.0.0git.dylib:arm64+0x74c07c)
      #5 lldb_private::PlatformMacOSX::GetSharedModule(lldb_private::ModuleSpec const&, lldb_private::Process*, std::__1::shared_ptr<lldb_private::Module>&, lldb_private::FileSpecList const*, llvm::SmallVectorImpl<std::__1::shared_ptr<lldb_private::Module> >*, bool*) PlatformMacOSX.cpp:176 (liblldb.15.0.0git.dylib:arm64+0x75aaf8)
      #6 lldb_private::Target::GetOrCreateModule(lldb_private::ModuleSpec const&, bool, lldb_private::Status*) Target.cpp:2118 (liblldb.15.0.0git.dylib:arm64+0x4c6d74)
      #7 lldb_private::Target::SetExecutableModule(std::__1::shared_ptr<lldb_private::Module>&, lldb_private::LoadDependentFiles) Target.cpp:1460 (liblldb.15.0.0git.dylib:arm64+0x4c6638)
      #8 lldb_private::TargetList::CreateTargetInternal(lldb_private::Debugger&, llvm::StringRef, lldb_private::ArchSpec const&, lldb_private::LoadDependentFiles, std::__1::shared_ptr<lldb_private::Platform>&, std::__1::shared_ptr<lldb_private::Target>&) TargetList.cpp:320 (liblldb.15.0.0git.dylib:arm64+0x4e2ba8)
      #9 lldb_private::TargetList::CreateTargetInternal(lldb_private::Debugger&, llvm::StringRef, llvm::StringRef, lldb_private::LoadDependentFiles, lldb_private::OptionGroupPlatform const*, std::__1::shared_ptr<lldb_private::Target>&) TargetList.cpp:233 (liblldb.15.0.0git.dylib:arm64+0x4e1634)
      #10 lldb_private::TargetList::CreateTarget(lldb_private::Debugger&, llvm::StringRef, llvm::StringRef, lldb_private::LoadDependentFiles, lldb_private::OptionGroupPlatform const*, std::__1::shared_ptr<lldb_private::Target>&) TargetList.cpp:52 (liblldb.15.0.0git.dylib:arm64+0x4dffd4)
      #11 CommandObjectTargetCreate::DoExecute(lldb_private::Args&, lldb_private::CommandReturnObject&) CommandObjectTarget.cpp:314 (liblldb.15.0.0git.dylib:arm64+0x2764760)
      #12 lldb_private::CommandObjectParsed::Execute(char const*, lldb_private::CommandReturnObject&) CommandObject.cpp:998 (liblldb.15.0.0git.dylib:arm64+0x3b19c0)
      #13 lldb_private::CommandInterpreter::HandleCommand(char const*, lldb_private::LazyBool, lldb_private::CommandReturnObject&) CommandInterpreter.cpp:1987 (liblldb.15.0.0git.dylib:arm64+0x3a4550)
      #14 lldb_private::CommandInterpreter::IOHandlerInputComplete(lldb_private::IOHandler&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) CommandInterpreter.cpp:3059 (liblldb.15.0.0git.dylib:arm64+0x3a8a30)
      #15 non-virtual thunk to lldb_private::CommandInterpreter::IOHandlerInputComplete(lldb_private::IOHandler&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) CommandInterpreter.cpp (liblldb.15.0.0git.dylib:arm64+0x3a8ecc)
      #16 lldb_private::IOHandlerEditline::Run() IOHandler.cpp (liblldb.15.0.0git.dylib:arm64+0x2948a4)
      #17 lldb_private::Debugger::RunIOHandlers() Debugger.cpp:1009 (liblldb.15.0.0git.dylib:arm64+0x26f7ac)
      #18 lldb_private::CommandInterpreter::RunCommandInterpreter(lldb_private::CommandInterpreterRunOptions&) CommandInterpreter.cpp:3309 (liblldb.15.0.0git.dylib:arm64+0x3aa360)
      #19 lldb::SBDebugger::RunCommandInterpreter(lldb::SBCommandInterpreterRunOptions const&) SBDebugger.cpp:1224 (liblldb.15.0.0git.dylib:arm64+0x54cdc)
      #20 Driver::MainLoop() Driver.cpp:575 (lldb:arm64+0x10000878c)
      #21 main Driver.cpp:851 (lldb:arm64+0x100009aa8)
  
    Mutex M119908344493401136 is already destroyed.
  
    Mutex M26458652249517616 is already destroyed.
  
    Mutex M208572962157285296 is already destroyed.
  
    Thread T3 (tid=5516949, running) created by main thread at:
      #0 pthread_create <null>:16654816 (libclang_rt.tsan_osx_dynamic.dylib:arm64e+0x2fe20)
      #1 llvm::llvm_execute_on_thread_impl(void* (*)(void*), void*, llvm::Optional<unsigned int>) Threading.inc:78 (liblldb.15.0.0git.dylib:arm64+0xa3ebe8)
      #2 llvm::ThreadPool::grow(int) ThreadPool.cpp:37 (liblldb.15.0.0git.dylib:arm64+0x9da0c4)
      #3 std::__1::shared_future<void> llvm::ThreadPool::asyncImpl<void>(std::__1::function<void ()>) ThreadPool.h:124 (liblldb.15.0.0git.dylib:arm64+0x4d5dc4)
      #4 lldb_private::Target::ModulesDidLoad(lldb_private::ModuleList&) Target.cpp:1635 (liblldb.15.0.0git.dylib:arm64+0x4c7600)
      #5 lldb_private::Target::SetExecutableModule(std::__1::shared_ptr<lldb_private::Module>&, lldb_private::LoadDependentFiles) Target.cpp:1468 (liblldb.15.0.0git.dylib:arm64+0x4c6738)
      #6 lldb_private::TargetList::CreateTargetInternal(lldb_private::Debugger&, llvm::StringRef, lldb_private::ArchSpec const&, lldb_private::LoadDependentFiles, std::__1::shared_ptr<lldb_private::Platform>&, std::__1::shared_ptr<lldb_private::Target>&) TargetList.cpp:320 (liblldb.15.0.0git.dylib:arm64+0x4e2ba8)
      #7 lldb_private::TargetList::CreateTargetInternal(lldb_private::Debugger&, llvm::StringRef, llvm::StringRef, lldb_private::LoadDependentFiles, lldb_private::OptionGroupPlatform const*, std::__1::shared_ptr<lldb_private::Target>&) TargetList.cpp:233 (liblldb.15.0.0git.dylib:arm64+0x4e1634)
      #8 lldb_private::TargetList::CreateTarget(lldb_private::Debugger&, llvm::StringRef, llvm::StringRef, lldb_private::LoadDependentFiles, lldb_private::OptionGroupPlatform const*, std::__1::shared_ptr<lldb_private::Target>&) TargetList.cpp:52 (liblldb.15.0.0git.dylib:arm64+0x4dffd4)
      #9 CommandObjectTargetCreate::DoExecute(lldb_private::Args&, lldb_private::CommandReturnObject&) CommandObjectTarget.cpp:314 (liblldb.15.0.0git.dylib:arm64+0x2764760)
      #10 lldb_private::CommandObjectParsed::Execute(char const*, lldb_private::CommandReturnObject&) CommandObject.cpp:998 (liblldb.15.0.0git.dylib:arm64+0x3b19c0)
      #11 lldb_private::CommandInterpreter::HandleCommand(char const*, lldb_private::LazyBool, lldb_private::CommandReturnObject&) CommandInterpreter.cpp:1987 (liblldb.15.0.0git.dylib:arm64+0x3a4550)
      #12 lldb_private::CommandInterpreter::IOHandlerInputComplete(lldb_private::IOHandler&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) CommandInterpreter.cpp:3059 (liblldb.15.0.0git.dylib:arm64+0x3a8a30)
      #13 non-virtual thunk to lldb_private::CommandInterpreter::IOHandlerInputComplete(lldb_private::IOHandler&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) CommandInterpreter.cpp (liblldb.15.0.0git.dylib:arm64+0x3a8ecc)
      #14 lldb_private::IOHandlerEditline::Run() IOHandler.cpp (liblldb.15.0.0git.dylib:arm64+0x2948a4)
      #15 lldb_private::Debugger::RunIOHandlers() Debugger.cpp:1009 (liblldb.15.0.0git.dylib:arm64+0x26f7ac)
      #16 lldb_private::CommandInterpreter::RunCommandInterpreter(lldb_private::CommandInterpreterRunOptions&) CommandInterpreter.cpp:3309 (liblldb.15.0.0git.dylib:arm64+0x3aa360)
      #17 lldb::SBDebugger::RunCommandInterpreter(lldb::SBCommandInterpreterRunOptions const&) SBDebugger.cpp:1224 (liblldb.15.0.0git.dylib:arm64+0x54cdc)
      #18 Driver::MainLoop() Driver.cpp:575 (lldb:arm64+0x10000878c)
      #19 main Driver.cpp:851 (lldb:arm64+0x100009aa8)
  
    Thread T6 (tid=5516954, running) created by main thread at:
      #0 pthread_create <null>:16654816 (libclang_rt.tsan_osx_dynamic.dylib:arm64e+0x2fe20)
      #1 llvm::llvm_execute_on_thread_impl(void* (*)(void*), void*, llvm::Optional<unsigned int>) Threading.inc:78 (liblldb.15.0.0git.dylib:arm64+0xa3ebe8)
      #2 llvm::ThreadPool::grow(int) ThreadPool.cpp:37 (liblldb.15.0.0git.dylib:arm64+0x9d9fc8)
      #3 std::__1::shared_future<void> llvm::ThreadPool::asyncImpl<void>(std::__1::function<void ()>) ThreadPool.h:124 (liblldb.15.0.0git.dylib:arm64+0x4d5dc4)
      #4 lldb_private::Target::ModulesDidLoad(lldb_private::ModuleList&) Target.cpp:1635 (liblldb.15.0.0git.dylib:arm64+0x4c7600)
      #5 lldb_private::Target::SetExecutableModule(std::__1::shared_ptr<lldb_private::Module>&, lldb_private::LoadDependentFiles) Target.cpp:1468 (liblldb.15.0.0git.dylib:arm64+0x4c6738)
      #6 lldb_private::TargetList::CreateTargetInternal(lldb_private::Debugger&, llvm::StringRef, lldb_private::ArchSpec const&, lldb_private::LoadDependentFiles, std::__1::shared_ptr<lldb_private::Platform>&, std::__1::shared_ptr<lldb_private::Target>&) TargetList.cpp:320 (liblldb.15.0.0git.dylib:arm64+0x4e2ba8)
      #7 lldb_private::TargetList::CreateTargetInternal(lldb_private::Debugger&, llvm::StringRef, llvm::StringRef, lldb_private::LoadDependentFiles, lldb_private::OptionGroupPlatform const*, std::__1::shared_ptr<lldb_private::Target>&) TargetList.cpp:233 (liblldb.15.0.0git.dylib:arm64+0x4e1634)
      #8 lldb_private::TargetList::CreateTarget(lldb_private::Debugger&, llvm::StringRef, llvm::StringRef, lldb_private::LoadDependentFiles, lldb_private::OptionGroupPlatform const*, std::__1::shared_ptr<lldb_private::Target>&) TargetList.cpp:52 (liblldb.15.0.0git.dylib:arm64+0x4dffd4)
      #9 CommandObjectTargetCreate::DoExecute(lldb_private::Args&, lldb_private::CommandReturnObject&) CommandObjectTarget.cpp:314 (liblldb.15.0.0git.dylib:arm64+0x2764760)
      #10 lldb_private::CommandObjectParsed::Execute(char const*, lldb_private::CommandReturnObject&) CommandObject.cpp:998 (liblldb.15.0.0git.dylib:arm64+0x3b19c0)
      #11 lldb_private::CommandInterpreter::HandleCommand(char const*, lldb_private::LazyBool, lldb_private::CommandReturnObject&) CommandInterpreter.cpp:1987 (liblldb.15.0.0git.dylib:arm64+0x3a4550)
      #12 lldb_private::CommandInterpreter::IOHandlerInputComplete(lldb_private::IOHandler&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) CommandInterpreter.cpp:3059 (liblldb.15.0.0git.dylib:arm64+0x3a8a30)
      #13 non-virtual thunk to lldb_private::CommandInterpreter::IOHandlerInputComplete(lldb_private::IOHandler&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >&) CommandInterpreter.cpp (liblldb.15.0.0git.dylib:arm64+0x3a8ecc)
      #14 lldb_private::IOHandlerEditline::Run() IOHandler.cpp (liblldb.15.0.0git.dylib:arm64+0x2948a4)
      #15 lldb_private::Debugger::RunIOHandlers() Debugger.cpp:1009 (liblldb.15.0.0git.dylib:arm64+0x26f7ac)
      #16 lldb_private::CommandInterpreter::RunCommandInterpreter(lldb_private::CommandInterpreterRunOptions&) CommandInterpreter.cpp:3309 (liblldb.15.0.0git.dylib:arm64+0x3aa360)
      #17 lldb::SBDebugger::RunCommandInterpreter(lldb::SBCommandInterpreterRunOptions const&) SBDebugger.cpp:1224 (liblldb.15.0.0git.dylib:arm64+0x54cdc)
      #18 Driver::MainLoop() Driver.cpp:575 (lldb:arm64+0x10000878c)
      #19 main Driver.cpp:851 (lldb:arm64+0x100009aa8)
  
  SUMMARY: ThreadSanitizer: data race ItaniumDemangle.h:3033 in llvm::itanium_demangle::AbstractManglingParser<llvm::itanium_demangle::ManglingParser<(anonymous namespace)::DefaultAllocator>, (anonymous namespace)::DefaultAllocator>::parseOperatorEncoding()


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D122975/new/

https://reviews.llvm.org/D122975



More information about the lldb-commits mailing list