diff options
Diffstat (limited to 'lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp')
| -rw-r--r-- | lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp | 12 |
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) { |

