24 uint32_t concrete_frame_idx,
44 static_cast<ProcessWasm *
>(thread->GetProcess().get());
46 return std::make_shared<WasmGDBRemoteRegisterContext>(
59 llvm::Expected<std::vector<lldb::addr_t>> call_stack_pcs =
61 if (!call_stack_pcs) {
63 "Failed to get Wasm callstack: {0}");
74 bool &behaves_like_zeroth_frame) {
81 behaves_like_zeroth_frame = (frame_idx == 0);
#define LLDB_LOG_ERROR(log, error,...)
WasmGDBRemoteRegisterContext(ThreadGDBRemote &thread, uint32_t concrete_frame_idx, GDBRemoteDynamicRegisterInfoSP ®_info_sp, uint64_t pc)
This base class provides an interface to stack frames.
lldb::ThreadSP GetThread() const
uint32_t GetConcreteFrameIndex() const
Query this frame to find what frame it is in this Thread's StackFrameList, not counting inlined frame...
uint32_t GetFrameIndex() const
Query this frame to find what frame it is in this Thread's StackFrameList.
friend class ThreadGDBRemote
GDBRemoteRegisterContext(ThreadGDBRemote &thread, uint32_t concrete_frame_idx, GDBRemoteDynamicRegisterInfoSP reg_info_sp, bool read_all_at_once, bool write_all_at_once)
bool PrivateSetRegisterValue(uint32_t reg, llvm::ArrayRef< uint8_t > data)
ProcessWasm provides the access to the Wasm program state retrieved from the Wasm engine.
process_gdb_remote::GDBRemoteDynamicRegisterInfoSP & GetRegisterInfo()
ProcessWasm provides the access to the Wasm program state retrieved from the Wasm engine.
llvm::Expected< std::vector< lldb::addr_t > > GetWasmCallStack()
Retrieve the current call stack from the WebAssembly remote process.
std::vector< lldb::addr_t > m_frames
lldb::RegisterContextSP DoCreateRegisterContextForFrame(lldb_private::StackFrame *frame) override
bool DoGetFrameInfoAtIndex(uint32_t frame_idx, lldb::addr_t &cfa, lldb::addr_t &pc, bool &behaves_like_zeroth_frame) override
uint32_t DoGetFrameCount() override
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.
std::shared_ptr< lldb_private::Thread > ThreadSP
std::shared_ptr< lldb_private::RegisterContext > RegisterContextSP