ProcessGDBRemote::BuildDynamicRegisterInfo() - even if we don't have a Target architecture
set up yet, if we're talking to an Apple arm device set the register set based on the
arm device's attributes; this is a safe assumption to make in this particular environment.
git-svn-id: https://llvm.org/svn/llvm-project/llvdb/trunk@141265 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp b/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
index d39fbe4..beed1f2 100644
--- a/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
+++ b/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
@@ -345,8 +345,18 @@
// We didn't get anything. See if we are debugging ARM and fill with
// a hard coded register set until we can get an updated debugserver
// down on the devices.
- if (GetTarget().GetArchitecture().GetMachine() == llvm::Triple::arm)
+
+ if (!GetTarget().GetArchitecture().IsValid()
+ && m_gdb_comm.GetHostArchitecture().IsValid()
+ && m_gdb_comm.GetHostArchitecture().GetMachine() == llvm::Triple::arm
+ && m_gdb_comm.GetHostArchitecture().GetTriple().getVendor() == llvm::Triple::Apple)
+ {
m_register_info.HardcodeARMRegisters();
+ }
+ else if (GetTarget().GetArchitecture().GetMachine() == llvm::Triple::arm)
+ {
+ m_register_info.HardcodeARMRegisters();
+ }
}
m_register_info.Finalize ();
}