[Lldb-commits] [lldb] r272281 - Some core files on MacOSX don't have permissions setup correctly on the LC_SEGMENT load commands. Assume read + execute if the permissions are not set.
Greg Clayton via lldb-commits
lldb-commits at lists.llvm.org
Thu Jun 9 10:52:03 PDT 2016
Author: gclayton
Date: Thu Jun 9 12:52:02 2016
New Revision: 272281
URL: http://llvm.org/viewvc/llvm-project?rev=272281&view=rev
Log:
Some core files on MacOSX don't have permissions setup correctly on the LC_SEGMENT load commands. Assume read + execute if the permissions are not set.
<rdar://problem/26720522>
Modified:
lldb/trunk/source/Plugins/Process/mach-core/ProcessMachCore.cpp
Modified: lldb/trunk/source/Plugins/Process/mach-core/ProcessMachCore.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Plugins/Process/mach-core/ProcessMachCore.cpp?rev=272281&r1=272280&r2=272281&view=diff
==============================================================================
--- lldb/trunk/source/Plugins/Process/mach-core/ProcessMachCore.cpp (original)
+++ lldb/trunk/source/Plugins/Process/mach-core/ProcessMachCore.cpp Thu Jun 9 12:52:02 2016
@@ -306,8 +306,15 @@ ProcessMachCore::DoLoadCore ()
{
m_core_aranges.Append(range_entry);
}
+ // Some core files don't fill in the permissions correctly. If that is the case
+ // assume read + execute so clients don't think the memory is not readable,
+ // or executable. The memory isn't writable since this plug-in doesn't implement
+ // DoWriteMemory.
+ uint32_t permissions = section->GetPermissions();
+ if (permissions == 0)
+ permissions = lldb::ePermissionsReadable | lldb::ePermissionsExecutable;
m_core_range_infos.Append(
- VMRangeToPermissions::Entry(section_vm_addr, section->GetByteSize(), section->GetPermissions()));
+ VMRangeToPermissions::Entry(section_vm_addr, section->GetByteSize(), permissions));
}
}
if (!ranges_are_sorted)
More information about the lldb-commits
mailing list