Aim debugserver workaround more precisely. (#83099)
This commit is contained in:
parent
8b56d9ef4d
commit
8a87f763a6
@ -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 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);
|
||||
|
||||
@ -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,13 +1571,6 @@ bool Target::SetArchitecture(const ArchSpec &arch_spec, bool set_platform,
|
||||
|
||||
if (m_arch.GetSpec().GetTriple() == other.GetTriple())
|
||||
replace_local_arch = false;
|
||||
// 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
|
||||
// the future.
|
||||
if (!m_arch.GetSpec().GetMachOCPUSubType() &&
|
||||
other.GetMachOCPUSubType() == llvm::MachO::CPU_SUBTYPE_ARM64E)
|
||||
replace_local_arch = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user