Index: source/Commands/CommandObjectThread.cpp =================================================================== --- source/Commands/CommandObjectThread.cpp +++ source/Commands/CommandObjectThread.cpp @@ -73,8 +73,13 @@ { Process *process = m_exe_ctx.GetProcessPtr(); uint32_t idx = 0; - for (ThreadSP thread_sp : process->Threads()) + + // Manually iterate to avoid locking the threadlist, + // which can cause deadlocks when JIT-ing code + ThreadList thread_list = process->GetThreadList(); + for (uint32_t i = 0; i < thread_list.GetSize(); ++i) { + ThreadSP thread_sp = thread_list.GetThreadAtIndex(i); if (idx != 0 && m_add_return) result.AppendMessage("");