[Lldb-commits] [lldb] r124012 - /lldb/trunk/tools/debugserver/source/MacOSX/MachTask.cpp
Jim Ingham
jingham at apple.com
Fri Jan 21 17:22:51 PST 2011
Author: jingham
Date: Fri Jan 21 19:22:51 2011
New Revision: 124012
URL: http://llvm.org/viewvc/llvm-project?rev=124012&view=rev
Log:
Add a (currently disabled) bear trap where instead of deallocating pages, we remove all permissions.
Modified:
lldb/trunk/tools/debugserver/source/MacOSX/MachTask.cpp
Modified: lldb/trunk/tools/debugserver/source/MacOSX/MachTask.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/debugserver/source/MacOSX/MachTask.cpp?rev=124012&r1=124011&r2=124012&view=diff
==============================================================================
--- lldb/trunk/tools/debugserver/source/MacOSX/MachTask.cpp (original)
+++ lldb/trunk/tools/debugserver/source/MacOSX/MachTask.cpp Fri Jan 21 19:22:51 2011
@@ -626,7 +626,7 @@
if (err.Error() == KERN_SUCCESS)
{
// Set the protections:
- vm_prot_t mach_prot = 0;
+ vm_prot_t mach_prot = VM_PROT_NONE;
if (permissions & eMemoryPermissionsReadable)
mach_prot |= VM_PROT_READ;
if (permissions & eMemoryPermissionsWritable)
@@ -663,7 +663,14 @@
if ((*pos).first == addr)
{
m_allocations.erase(pos);
- return ::mach_vm_deallocate (task, (*pos).first, (*pos).second) == KERN_SUCCESS;
+#define ALWAYS_ZOMBIE_ALLOCATIONS 0
+ if (ALWAYS_ZOMBIE_ALLOCATIONS || getenv ("DEBUGSERVER_ZOMBIE_ALLOCATIONS"))
+ {
+ ::mach_vm_protect (task, (*pos).first, (*pos).second, 0, VM_PROT_NONE);
+ return true;
+ }
+ else
+ return ::mach_vm_deallocate (task, (*pos).first, (*pos).second) == KERN_SUCCESS;
}
}
More information about the lldb-commits
mailing list