Change search order of target definition files.
authorEwan Crawford <ewan@codeplay.com>
Tue, 30 Jun 2015 13:08:44 +0000 (13:08 +0000)
committerEwan Crawford <ewan@codeplay.com>
Tue, 30 Jun 2015 13:08:44 +0000 (13:08 +0000)
Make the python target definition file have highest priority so that we can set
the remote stub breakpoint pc offset using it.

Reviewers: clayborg
Subscribers: ted, deepak2427, lldb-commits

Differential revision: http://reviews.llvm.org/D10775

llvm-svn: 241063

lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp

index d712a25..5cb4da5 100644 (file)
@@ -520,6 +520,19 @@ ProcessGDBRemote::BuildDynamicRegisterInfo (bool force)
         GetGlobalPluginProperties()->SetPacketTimeout(host_packet_timeout);
     }
 
+    // Register info search order: 
+    //     1 - Use the target definition python file if one is specified.
+    //     2 - If the target definition doesn't have any of the info from the target.xml (registers) then proceed to read the target.xml.
+    //     3 - Fall back on the qRegisterInfo packets.
+
+    FileSpec target_definition_fspec = GetGlobalPluginProperties()->GetTargetDefinitionFile ();
+    if (target_definition_fspec)
+    {
+        // See if we can get register definitions from a python file
+        if (ParsePythonTargetDefinition (target_definition_fspec))
+            return;
+    }
+
     if (GetGDBServerRegisterInfo ())
         return;
     
@@ -679,15 +692,6 @@ ProcessGDBRemote::BuildDynamicRegisterInfo (bool force)
         return;
     }
 
-    FileSpec target_definition_fspec = GetGlobalPluginProperties()->GetTargetDefinitionFile ();
-        
-    if (target_definition_fspec)
-    {
-        // See if we can get register definitions from a python file
-        if (ParsePythonTargetDefinition (target_definition_fspec))
-            return;
-    }
-
     // We didn't get anything if the accumulated reg_num is zero.  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.