diff options
author | Alex Langford <alangford@apple.com> | 2022-12-16 16:19:40 -0800 |
---|---|---|
committer | Alex Langford <alangford@apple.com> | 2023-01-11 13:37:16 -0800 |
commit | 58def623ca46f107d185d7f02b267ffa751aff97 (patch) | |
tree | 34c73d07427381cba61d2b499a9ee20c9f132c4c /lldb/tools | |
parent | b4ad387ec558dc886c2ab85e4aea10c111cc83c0 (diff) | |
download | llvm-58def623ca46f107d185d7f02b267ffa751aff97.tar.gz |
[debugserver] Clear memory allocations after exec
After an exec, the inferior is a new process and none of these memory
regions are still allocated. Clear them out.
Differential Revision: https://reviews.llvm.org/D140253
Diffstat (limited to 'lldb/tools')
-rw-r--r-- | lldb/tools/debugserver/source/MacOSX/MachProcess.mm | 1 | ||||
-rw-r--r-- | lldb/tools/debugserver/source/MacOSX/MachTask.h | 1 | ||||
-rw-r--r-- | lldb/tools/debugserver/source/MacOSX/MachTask.mm | 7 |
3 files changed, 9 insertions, 0 deletions
diff --git a/lldb/tools/debugserver/source/MacOSX/MachProcess.mm b/lldb/tools/debugserver/source/MacOSX/MachProcess.mm index 3aa2a84bc359..d524a49defb9 100644 --- a/lldb/tools/debugserver/source/MacOSX/MachProcess.mm +++ b/lldb/tools/debugserver/source/MacOSX/MachProcess.mm @@ -2285,6 +2285,7 @@ task_t MachProcess::ExceptionMessageBundleComplete() { 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 index a58d5bed3b06..286a57b9e0dd 100644 --- a/lldb/tools/debugserver/source/MacOSX/MachTask.h +++ b/lldb/tools/debugserver/source/MacOSX/MachTask.h @@ -61,6 +61,7 @@ public: 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 index 1e03faf3f2e2..feec85df9ef1 100644 --- a/lldb/tools/debugserver/source/MacOSX/MachTask.mm +++ b/lldb/tools/debugserver/source/MacOSX/MachTask.mm @@ -999,6 +999,13 @@ nub_bool_t MachTask::DeallocateMemory(nub_addr_t addr) { return false; } +//---------------------------------------------------------------------- +// MachTask::ClearAllocations +//---------------------------------------------------------------------- +void MachTask::ClearAllocations() { + m_allocations.clear(); +} + void MachTask::TaskPortChanged(task_t task) { m_task = task; |