16#include "llvm/Support/Error.h"
52 {reg, std::make_unique<WasmVirtualRegisterInfo>(
55 return it->second.get();
83 wasm_reg_info->
kind, frame_index, wasm_reg_info->
index);
86 "Failed to read Wasm local: {0}");
93 wasm_reg_info->
byte_size = buffer_sp->GetByteSize();
98 return error.Success();
static llvm::raw_ostream & error(Stream &strm)
#define LLDB_LOG_ERROR(log, error,...)
lldb::ByteOrder GetByteOrder() const
uint32_t GetAddressByteSize() const
uint32_t m_concrete_frame_idx
virtual Thread & GetThread()
Status SetValueFromData(const RegisterInfo ®_info, DataExtractor &data, lldb::offset_t offset, bool partial_data_ok)
GDBRemoteRegisterContext(ThreadGDBRemote &thread, uint32_t concrete_frame_idx, GDBRemoteDynamicRegisterInfoSP reg_info_sp, bool read_all_at_once, bool write_all_at_once)
GDBRemoteDynamicRegisterInfoSP m_reg_info_sp
bool ReadRegister(const RegisterInfo *reg_info, RegisterValue &value) override
bool WriteRegister(const RegisterInfo *reg_info, const RegisterValue &value) override
ProcessWasm provides the access to the Wasm program state retrieved from the Wasm engine.
llvm::Expected< lldb::DataBufferSP > GetWasmVariable(WasmVirtualRegisterKinds kind, int frame_index, int index)
Query the value of a WebAssembly variable from the WebAssembly remote process.
const RegisterInfo * GetRegisterInfoAtIndex(size_t reg) override
const RegisterSet * GetRegisterSet(size_t reg_set) override
size_t GetRegisterCount() override
bool WriteRegister(const RegisterInfo *reg_info, const RegisterValue &value) override
RegisterContextWasm(wasm::ThreadWasm &thread, uint32_t concrete_frame_idx, process_gdb_remote::GDBRemoteDynamicRegisterInfoSP reg_info_sp)
uint32_t ConvertRegisterKindToRegisterNumber(lldb::RegisterKind kind, uint32_t num) override
Convert from a given register numbering scheme to the lldb register numbering scheme.
void InvalidateAllRegisters() override
size_t GetRegisterSetCount() override
bool ReadRegister(const RegisterInfo *reg_info, RegisterValue &value) override
~RegisterContextWasm() override
std::unordered_map< size_t, std::unique_ptr< WasmVirtualRegisterInfo > > m_register_map
ProcessWasm provides the access to the Wasm program state retrieved from the Wasm engine.
std::shared_ptr< GDBRemoteDynamicRegisterInfo > GDBRemoteDynamicRegisterInfoSP
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.
@ eWasmTagNotAWasmLocation
uint32_t GetWasmVirtualRegisterTag(size_t reg)
uint32_t GetWasmVirtualRegisterIndex(size_t reg)
@ eEncodingUint
unsigned integer
std::shared_ptr< lldb_private::DataBuffer > DataBufferSP
RegisterKind
Register numbering types.
Every register is described in detail including its name, alternate name (optional),...
lldb::Encoding encoding
Encoding of the register bits.
uint32_t byte_offset
The byte offset in the register context data where this register's value is found.
uint32_t byte_size
Size in bytes of the register.
const char * name
Name of this register, can't be NULL.
Registers are grouped into register sets.
WasmVirtualRegisterKinds kind