[Lldb-commits] [PATCH] Fix load address resolution on Windows

Greg Clayton clayborg at gmail.com
Thu Jan 22 09:31:11 PST 2015

Close. A couple changed as annotated in the source. There are two categories of unknown:

- specified "unknown" for the vendor or OS where the user actually typed "unknown" in the triple
- unspecified "unknown" for the vendor or OS where the user didn't specify it.

Add the quick fixes I specify above and this patch is good to go.

Comment at: source/Core/Module.cpp:1314
@@ +1313,3 @@
+                m_objfile_sp->GetArchitecture (new_arch);
+                if (m_arch.GetTriple().getVendor() == llvm::Triple::UnknownVendor)
+                    m_arch.GetTriple().setVendor(new_arch.GetTriple().getVendor());
We need to make sure the vendor wasn't specified as "unknown" by also calling:

bool ArchSpec::TripleVendorWasSpecified(). So the above line should be:

if (m_arch.GetTriple().getVendor() == llvm::Triple::UnknownVendor && m_arch.TripleVendorWasSpecified())

Comment at: source/Core/Module.cpp:1316
@@ +1315,3 @@
+                    m_arch.GetTriple().setVendor(new_arch.GetTriple().getVendor());
+                if (m_arch.GetTriple().getOS() == llvm::Triple::UnknownOS)
+                    m_arch.GetTriple().setOS(new_arch.GetTriple().getOS());
Save thing as the previous, make sure "unknown" wasn't specified:

if (m_arch.GetTriple().getOS() == llvm::Triple::UnknownOS && m_arch.TripleOSWasSpecified())



More information about the lldb-commits mailing list