diff --git a/lldb/tools/debugserver/source/MacOSX/MachProcess.mm b/lldb/tools/debugserver/source/MacOSX/MachProcess.mm --- a/lldb/tools/debugserver/source/MacOSX/MachProcess.mm +++ b/lldb/tools/debugserver/source/MacOSX/MachProcess.mm @@ -2285,6 +2285,7 @@ m_thread_list.Clear(); m_activities.Clear(); m_breakpoints.DisableAll(); + m_task.ClearAllocations(); } if (m_sent_interrupt_signo != 0) { diff --git a/lldb/tools/debugserver/source/MacOSX/MachTask.h b/lldb/tools/debugserver/source/MacOSX/MachTask.h --- a/lldb/tools/debugserver/source/MacOSX/MachTask.h +++ b/lldb/tools/debugserver/source/MacOSX/MachTask.h @@ -61,6 +61,7 @@ nub_addr_t AllocateMemory(nub_size_t size, uint32_t permissions); nub_bool_t DeallocateMemory(nub_addr_t addr); + void ClearAllocations(); mach_port_t ExceptionPort() const; bool ExceptionPortIsValid() const; diff --git a/lldb/tools/debugserver/source/MacOSX/MachTask.mm b/lldb/tools/debugserver/source/MacOSX/MachTask.mm --- a/lldb/tools/debugserver/source/MacOSX/MachTask.mm +++ b/lldb/tools/debugserver/source/MacOSX/MachTask.mm @@ -999,6 +999,13 @@ return false; } +//---------------------------------------------------------------------- +// MachTask::ClearAllocations +//---------------------------------------------------------------------- +void MachTask::ClearAllocations() { + m_allocations.clear(); +} + void MachTask::TaskPortChanged(task_t task) { m_task = task;