When ObjectFileMachO::GetModuleSpecifications is getting the ArchSpec
out of a binary, if the Mach-O binary is MH_PRELOAD ("standalone"), don't
let the OS be set to "ios" or "macosx" - there will be no dynamic loader
used when debugging this process.
<rdar://problem/9956443>
llvm-svn: 189305
diff --git a/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp b/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
index 88213c7..9f1d154 100644
--- a/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
+++ b/lldb/source/Plugins/ObjectFile/Mach-O/ObjectFileMachO.cpp
@@ -523,6 +523,11 @@
spec.GetArchitecture().SetArchitecture(eArchTypeMachO,
header.cputype,
header.cpusubtype);
+ if (header.filetype == HeaderFileTypePreloadedExecutable) // 0x5u MH_PRELOAD
+ {
+ // Set OS to "unknown" - this is a standalone binary with no dyld et al
+ spec.GetArchitecture().GetTriple().setOS (llvm::Triple::UnknownOS);
+ }
if (spec.GetArchitecture().IsValid())
{
GetUUID (header, data, data_offset, spec.GetUUID());