summaryrefslogtreecommitdiffstats
path: root/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp')
-rw-r--r--lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp12
1 files changed, 11 insertions, 1 deletions
diff --git a/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp b/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
index ff66ba93faf..e8d31181bd6 100644
--- a/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
+++ b/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
@@ -1555,11 +1555,13 @@ ObjectFileMachO::ParseSymtab ()
ProcessSP process_sp (m_process_wp.lock());
Process *process = process_sp.get();
+ uint32_t memory_module_load_level = eMemoryModuleLoadLevelComplete;
+
if (process)
{
Target &target = process->GetTarget();
- const uint32_t memory_module_load_level = target.GetMemoryModuleLoadLevel();
+ memory_module_load_level = target.GetMemoryModuleLoadLevel();
SectionSP linkedit_section_sp(section_list->FindSectionByName(GetSegmentNameLINKEDIT()));
// Reading mach file from memory in a process or core file...
@@ -1674,6 +1676,14 @@ ObjectFileMachO::ParseSymtab ()
}
}
+ if (nlist_data.GetByteSize() == 0 && memory_module_load_level == eMemoryModuleLoadLevelComplete)
+ {
+ if (log)
+ module_sp->LogMessage(log, "failed to read nlist data");
+ return 0;
+ }
+
+
const bool have_strtab_data = strtab_data.GetByteSize() > 0;
if (!have_strtab_data)
{
OpenPOWER on IntegriCloud