summaryrefslogtreecommitdiff
path: root/lldb/tools
diff options
context:
space:
mode:
authorAlex Langford <alangford@apple.com>2022-12-16 16:19:40 -0800
committerAlex Langford <alangford@apple.com>2023-01-11 13:37:16 -0800
commit58def623ca46f107d185d7f02b267ffa751aff97 (patch)
tree34c73d07427381cba61d2b499a9ee20c9f132c4c /lldb/tools
parentb4ad387ec558dc886c2ab85e4aea10c111cc83c0 (diff)
downloadllvm-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.mm1
-rw-r--r--lldb/tools/debugserver/source/MacOSX/MachTask.h1
-rw-r--r--lldb/tools/debugserver/source/MacOSX/MachTask.mm7
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;