[Lldb-commits] [lldb] 87183b1 - [lldb] Only override target arch if it is compatible

Jonas Devlieghere via lldb-commits lldb-commits at lists.llvm.org
Wed Apr 14 12:14:32 PDT 2021


Author: Fred Riss
Date: 2021-04-14T12:14:25-07:00
New Revision: 87183b1a7511f1726b0b19a2a217ed249ef3c5b9

URL: https://github.com/llvm/llvm-project/commit/87183b1a7511f1726b0b19a2a217ed249ef3c5b9
DIFF: https://github.com/llvm/llvm-project/commit/87183b1a7511f1726b0b19a2a217ed249ef3c5b9.diff

LOG: [lldb] Only override target arch if it is compatible

It looks like the goal of this code is to provide a more precise
architecture definition for the target when attaching to a process. When
attaching to a foreign debugserver, you might get into a situation where
the active (host) platform will give you bogus information on the target
process.

This change allows the platform to override the target arch only with a
compatible architecture. This fixes TestTargetXMLArch.py on Apple
Silicon. Another alternative would be to just fail in this scenario and
update the test(s).

Added: 
    

Modified: 
    lldb/source/Target/Process.cpp

Removed: 
    


################################################################################
diff  --git a/lldb/source/Target/Process.cpp b/lldb/source/Target/Process.cpp
index 4e01c3bbbf4f7..986df94e73beb 100644
--- a/lldb/source/Target/Process.cpp
+++ b/lldb/source/Target/Process.cpp
@@ -2865,8 +2865,10 @@ void Process::CompleteAttach() {
       ProcessInstanceInfo process_info;
       GetProcessInfo(process_info);
       const ArchSpec &process_arch = process_info.GetArchitecture();
+      const ArchSpec &target_arch = GetTarget().GetArchitecture();
       if (process_arch.IsValid() &&
-          !GetTarget().GetArchitecture().IsExactMatch(process_arch)) {
+          target_arch.IsCompatibleMatch(process_arch) &&
+          !target_arch.IsExactMatch(process_arch)) {
         GetTarget().SetArchitecture(process_arch);
         LLDB_LOGF(log,
                   "Process::%s switching architecture to %s based on info "


        


More information about the lldb-commits mailing list