19#include "llvm/Support/Endian.h"
25 Thread &thread, std::unique_ptr<RegisterInfoPOSIX_arm64> register_info_up,
51 llvm::support::ulittle64_t x[12];
52 llvm::support::ulittle64_t
sp;
57 llvm::support::ulittle64_t x[30];
58 llvm::support::ulittle64_t lr;
59 llvm::support::ulittle64_t _reserved;
60 llvm::support::ulittle64_t
sp;
64 constexpr int FBSD14 = 1400084;
65 int osreldate = FBSD14;
68 osreldate = *osreldate_or_null;
71 "Cannot find osreldate. Defaulting to %d.", FBSD14);
74 if (osreldate >= FBSD14) {
75 constexpr uint32_t PCB_FP = 10;
76 constexpr uint32_t PCB_LR = 11;
79 if (rd !=
sizeof(pcb))
96 "nonconsecutive arm64 register numbers");
103 "nonconsecutive arm64 register numbers");
114 sizeof(pcb13),
error);
115 if (rd !=
sizeof(pcb13))
151 "nonconsecutive arm64 register numbers");
178 Target &target = process_sp->GetTarget();
198 process_sp->ReadMemory(addr, &osreldate,
sizeof(osreldate),
error);
199 if (bytes_read ==
sizeof(osreldate) &&
error.Success())
static llvm::raw_ostream & error(Stream &strm)
#define LLDB_LOGF(log,...)
std::optional< int > GetOsreldate()
bool WriteRegister(const lldb_private::RegisterInfo *reg_info, const lldb_private::RegisterValue &value) override
bool ReadRegister(const lldb_private::RegisterInfo *reg_info, lldb_private::RegisterValue &value) override
RegisterContextFreeBSDKernelCore_arm64(lldb_private::Thread &thread, std::unique_ptr< RegisterInfoPOSIX_arm64 > register_info_up, lldb::addr_t pcb_addr)
RegisterContextPOSIX_arm64(lldb_private::Thread &thread, std::unique_ptr< RegisterInfoPOSIX_arm64 > register_info)
A uniqued constant string class.
void FindSymbolsWithNameAndType(ConstString name, lldb::SymbolType symbol_type, SymbolContextList &sc_list) const
Defines a list of symbol context objects.
bool GetContextAtIndex(size_t idx, SymbolContext &sc) const
Get accessor for a symbol context at index idx.
uint32_t GetSize() const
Get accessor for a symbol context list size.
Defines a symbol context baton that can be handed other debug core functions.
Symbol * symbol
The Symbol for a given query.
lldb::addr_t GetLoadAddress(Target *target) const
const ModuleList & GetImages() const
Get accessor for the images for this process.
#define LLDB_INVALID_ADDRESS
A class that represents a running process on the host machine.
Log * GetLog(Cat mask)
Retrieve the Log object for the channel associated with the given log enum.
std::shared_ptr< lldb_private::Process > ProcessSP
@ eRegisterKindLLDB
lldb's internal register numbers
Every register is described in detail including its name, alternate name (optional),...
uint32_t kinds[lldb::kNumRegisterKinds]
Holds all of the various register numbers for all register kinds.