9#ifndef LLDB_SOURCE_PLUGINS_PROCESS_WASM_PROCESSWASM_H
10#define LLDB_SOURCE_PLUGINS_PROCESS_WASM_PROCESSWASM_H
32 :
offset(addr & 0x00000000ffffffff),
33 module_id((addr & 0x00ffffff00000000) >> 32),
type(addr >> 62) {}
43static_assert(
sizeof(wasm_addr_t) == 8,
"");
70 bool plugin_specified_by_name)
override;
77 llvm::Expected<lldb::DataBufferSP>
81 std::shared_ptr<process_gdb_remote::ThreadGDBRemote>
static llvm::raw_ostream & error(Stream &strm)
GDBRemoteDynamicRegisterInfoSP m_register_info_sp
const ProcessWasm & operator=(const ProcessWasm &)=delete
llvm::StringRef GetPluginName() override
std::shared_ptr< process_gdb_remote::ThreadGDBRemote > CreateThread(lldb::tid_t tid) override
ProcessWasm(const ProcessWasm &)
static llvm::StringRef GetPluginNameStatic()
bool CanDebug(lldb::TargetSP target_sp, bool plugin_specified_by_name) override
Check if a plug-in instance can debug the file in module.
static void DebuggerInitialize(Debugger &debugger)
static lldb::ProcessSP CreateInstance(lldb::TargetSP target_sp, lldb::ListenerSP listener_sp, const FileSpec *crash_file_path, bool can_connect)
process_gdb_remote::GDBRemoteDynamicRegisterInfoSP & GetRegisterInfo()
llvm::Expected< std::vector< lldb::addr_t > > GetWasmCallStack(lldb::tid_t tid)
Retrieve the current call stack from the WebAssembly remote process.
~ProcessWasm() override=default
ProcessWasm(lldb::TargetSP target_sp, lldb::ListenerSP listener_sp)
llvm::Expected< lldb::DataBufferSP > GetWasmVariable(WasmVirtualRegisterKinds kind, int frame_index, int index)
Query the value of a WebAssembly variable from the WebAssembly remote process.
static llvm::StringRef GetPluginDescriptionStatic()
size_t ReadMemory(lldb::addr_t vm_addr, void *buf, size_t size, Status &error) override
Read of memory from a process.
std::shared_ptr< GDBRemoteDynamicRegisterInfo > GDBRemoteDynamicRegisterInfoSP
WasmAddressType
Each WebAssembly module has separated address spaces for Code and Memory.
A class that represents a running process on the host machine.
std::shared_ptr< lldb_private::Process > ProcessSP
std::shared_ptr< lldb_private::Listener > ListenerSP
std::shared_ptr< lldb_private::Target > TargetSP
wasm_addr_t(WasmAddressType type, uint32_t module_id, uint32_t offset)
wasm_addr_t(lldb::addr_t addr)
WasmAddressType GetType()