[Lldb-commits] [lldb] Aim debugserver workaround more precisely. (PR #83099)
via lldb-commits
lldb-commits at lists.llvm.org
Mon Feb 26 18:48:05 PST 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-lldb
Author: Adrian Prantl (adrian-prantl)
<details>
<summary>Changes</summary>
---
Full diff: https://github.com/llvm/llvm-project/pull/83099.diff
2 Files Affected:
- (modified) lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp (+14-1)
- (modified) lldb/source/Target/Target.cpp (+3-1)
``````````diff
diff --git a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
index 6f8aa262289946..c38d74ca8e6c95 100644
--- a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
+++ b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
@@ -17,6 +17,7 @@
#include "lldb/Core/ModuleSpec.h"
#include "lldb/Host/HostInfo.h"
+#include "lldb/Host/SafeMachO.h"
#include "lldb/Host/XML.h"
#include "lldb/Symbol/Symbol.h"
#include "lldb/Target/MemoryRegionInfo.h"
@@ -2147,8 +2148,20 @@ bool GDBRemoteCommunicationClient::GetCurrentProcessInfo(bool allow_lazy) {
if (!value.getAsInteger(16, cpu))
++num_keys_decoded;
} else if (name.equals("cpusubtype")) {
- if (!value.getAsInteger(16, sub))
+ if (!value.getAsInteger(16, sub)) {
++num_keys_decoded;
+ // Workaround for for pre-2024 Apple debugserver, which always
+ // returns arm64e on arm64e-capable hardware regardless of
+ // what the process is. This can be deleted at some point in
+ // the future.
+ if (cpu == llvm::MachO::CPU_TYPE_ARM64 &&
+ sub == llvm::MachO::CPU_SUBTYPE_ARM64E) {
+ if (GetGDBServerVersion())
+ if (m_gdb_server_version >= 1000 &&
+ m_gdb_server_version <= 1504)
+ sub = 0;
+ }
+ }
} else if (name.equals("triple")) {
StringExtractor extractor(value);
extractor.GetHexByteString(triple);
diff --git a/lldb/source/Target/Target.cpp b/lldb/source/Target/Target.cpp
index 089915cab4915a..b592016e7a9824 100644
--- a/lldb/source/Target/Target.cpp
+++ b/lldb/source/Target/Target.cpp
@@ -33,7 +33,6 @@
#include "lldb/Expression/UtilityFunction.h"
#include "lldb/Host/Host.h"
#include "lldb/Host/PosixApi.h"
-#include "lldb/Host/SafeMachO.h"
#include "lldb/Host/StreamFile.h"
#include "lldb/Interpreter/CommandInterpreter.h"
#include "lldb/Interpreter/CommandReturnObject.h"
@@ -1572,6 +1571,7 @@ bool Target::SetArchitecture(const ArchSpec &arch_spec, bool set_platform,
if (m_arch.GetSpec().GetTriple() == other.GetTriple())
replace_local_arch = false;
+<<<<<<< HEAD
// Workaround for for pre-2024 debugserver, which always
// returns arm64e on arm64e-capable hardware regardless of
// what the process is. This can be deleted at some point in
@@ -1579,6 +1579,8 @@ bool Target::SetArchitecture(const ArchSpec &arch_spec, bool set_platform,
if (!m_arch.GetSpec().GetMachOCPUSubType() &&
other.GetMachOCPUSubType() == llvm::MachO::CPU_SUBTYPE_ARM64E)
replace_local_arch = true;
+=======
+>>>>>>> e491dde5dab4 (Aim debugserver workaround more precisely.)
}
}
}
``````````
</details>
https://github.com/llvm/llvm-project/pull/83099
More information about the lldb-commits
mailing list