LLDB mainline
RegisterContextWasm.h
Go to the documentation of this file.
1//===----------------------------------------------------------------------===//
2//
3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4// See https://llvm.org/LICENSE.txt for license information.
5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6//
7//===----------------------------------------------------------------------===//
8
9#ifndef LLDB_SOURCE_PLUGINS_PROCESS_WASM_REGISTERCONTEXTWASM_H
10#define LLDB_SOURCE_PLUGINS_PROCESS_WASM_REGISTERCONTEXTWASM_H
11
13#include "ThreadWasm.h"
16#include <unordered_map>
17
18namespace lldb_private {
19namespace wasm {
20
22
23typedef std::shared_ptr<RegisterContextWasm> RegisterContextWasmSP;
24
32
35public:
37 wasm::ThreadWasm &thread, uint32_t concrete_frame_idx,
39
41
43 uint32_t num) override;
44
45 void InvalidateAllRegisters() override;
46
47 size_t GetRegisterCount() override;
48
49 const RegisterInfo *GetRegisterInfoAtIndex(size_t reg) override;
50
51 size_t GetRegisterSetCount() override;
52
53 const RegisterSet *GetRegisterSet(size_t reg_set) override;
54
55 bool ReadRegister(const RegisterInfo *reg_info,
56 RegisterValue &value) override;
57
58 bool WriteRegister(const RegisterInfo *reg_info,
59 const RegisterValue &value) override;
60
61private:
62 std::unordered_map<size_t, std::unique_ptr<WasmVirtualRegisterInfo>>
64};
65
66} // namespace wasm
67} // namespace lldb_private
68
69#endif
const RegisterInfo * GetRegisterInfoAtIndex(size_t reg) override
const RegisterSet * GetRegisterSet(size_t reg_set) 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.
bool ReadRegister(const RegisterInfo *reg_info, RegisterValue &value) 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.
Definition ThreadWasm.h:19
std::shared_ptr< GDBRemoteDynamicRegisterInfo > GDBRemoteDynamicRegisterInfoSP
std::shared_ptr< RegisterContextWasm > RegisterContextWasmSP
A class that represents a running process on the host machine.
RegisterKind
Register numbering types.
Every register is described in detail including its name, alternate name (optional),...
Registers are grouped into register sets.
WasmVirtualRegisterInfo(WasmVirtualRegisterKinds kind, uint32_t index)