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
14#include "ThreadWasm.h"
17#include <unordered_map>
18
19namespace lldb_private {
20namespace wasm {
21
23
24typedef std::shared_ptr<RegisterContextWasm> RegisterContextWasmSP;
25
33
36public:
38 uint32_t concrete_frame_idx,
39 lldb::DynamicRegisterInfoSP reg_info_sp);
40
42
44 uint32_t num) override;
45
46 void InvalidateAllRegisters() override;
47
48 size_t GetRegisterCount() override;
49
50 const RegisterInfo *GetRegisterInfoAtIndex(size_t reg) override;
51
52 size_t GetRegisterSetCount() override;
53
54 const RegisterSet *GetRegisterSet(size_t reg_set) override;
55
56 bool ReadRegister(const RegisterInfo *reg_info,
57 RegisterValue &value) override;
58
59 bool WriteRegister(const RegisterInfo *reg_info,
60 const RegisterValue &value) override;
61
62private:
63 std::unordered_map<size_t, std::unique_ptr<WasmVirtualRegisterInfo>>
65};
66
67} // namespace wasm
68} // namespace lldb_private
69
70#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(process_gdb_remote::ThreadGDBRemote &thread, uint32_t concrete_frame_idx, lldb::DynamicRegisterInfoSP 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
std::shared_ptr< RegisterContextWasm > RegisterContextWasmSP
A class that represents a running process on the host machine.
std::shared_ptr< lldb_private::DynamicRegisterInfo > DynamicRegisterInfoSP
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)