From c72c0b298c13ebc4d374e84b8ea20f8ca4f5ace2 Mon Sep 17 00:00:00 2001 From: nd Date: Fri, 16 May 2025 18:09:50 +0200 Subject: [PATCH] Fix race condition during iteration through modules (#139283) (#139862) Use the locking iterator to ensure module don't change during iteration. --- lldb/source/Target/Target.cpp | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/lldb/source/Target/Target.cpp b/lldb/source/Target/Target.cpp index 7f61f8689fb9..9660fc97970b 100644 --- a/lldb/source/Target/Target.cpp +++ b/lldb/source/Target/Target.cpp @@ -1511,8 +1511,7 @@ bool Target::IgnoreWatchpointByID(lldb::watch_id_t watch_id, ModuleSP Target::GetExecutableModule() { // search for the first executable in the module list - for (size_t i = 0; i < m_images.GetSize(); ++i) { - ModuleSP module_sp = m_images.GetModuleAtIndex(i); + for (ModuleSP module_sp : m_images.Modules()) { lldb_private::ObjectFile *obj = module_sp->GetObjectFile(); if (obj == nullptr) continue;