[Lldb-commits] [lldb] r321856 - [ArchSpec] Don't consider Unknown MachO64 as invalid.

Davide Italiano via lldb-commits lldb-commits at lists.llvm.org
Thu Jan 4 18:50:25 PST 2018


Author: davide
Date: Thu Jan  4 18:50:24 2018
New Revision: 321856

URL: http://llvm.org/viewvc/llvm-project?rev=321856&view=rev
Log:
[ArchSpec] Don't consider Unknown MachO64 as invalid.

Even without a proper arch we can access line tables, etc..

<rdar://problem/35778442>

Modified:
    lldb/trunk/source/Utility/ArchSpec.cpp

Modified: lldb/trunk/source/Utility/ArchSpec.cpp
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/source/Utility/ArchSpec.cpp?rev=321856&r1=321855&r2=321856&view=diff
==============================================================================
--- lldb/trunk/source/Utility/ArchSpec.cpp (original)
+++ lldb/trunk/source/Utility/ArchSpec.cpp Thu Jan  4 18:50:24 2018
@@ -890,7 +890,12 @@ void ArchSpec::MergeFrom(const ArchSpec
     GetTriple().setOS(other.GetTriple().getOS());
   if (GetTriple().getArch() == llvm::Triple::UnknownArch) {
     GetTriple().setArch(other.GetTriple().getArch());
-    UpdateCore();
+
+    // MachO unknown64 isn't really invalid as the debugger can
+    // still obtain information from the binary, e.g. line tables.
+    // As such, we don't update the core here.
+    if (other.GetCore() != eCore_uknownMach64)
+      UpdateCore();
   }
   if (GetTriple().getEnvironment() == llvm::Triple::UnknownEnvironment &&
       !TripleVendorWasSpecified()) {




More information about the lldb-commits mailing list