Path: blob/main/contrib/llvm-project/lldb/source/Plugins/Process/Utility/RegisterContextDummy.h
96381 views
//===-- RegisterContextDummy.h ----------------------------------------*- C++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-exception6//7//===----------------------------------------------------------------------===//89#ifndef LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_REGISTERCONTEXTDUMMY_H10#define LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_REGISTERCONTEXTDUMMY_H1112#include <vector>1314#include "lldb/Symbol/SymbolContext.h"15#include "lldb/Target/RegisterContext.h"16#include "lldb/lldb-private.h"1718namespace lldb_private {1920class RegisterContextDummy : public lldb_private::RegisterContext {21public:22typedef std::shared_ptr<RegisterContextDummy> SharedPtr;2324RegisterContextDummy(Thread &thread, uint32_t concrete_frame_idx,25uint32_t address_byte_size);2627~RegisterContextDummy() override;2829void InvalidateAllRegisters() override;3031size_t GetRegisterCount() override;3233const lldb_private::RegisterInfo *GetRegisterInfoAtIndex(size_t reg) override;3435size_t GetRegisterSetCount() override;3637const lldb_private::RegisterSet *GetRegisterSet(size_t reg_set) override;3839bool ReadRegister(const lldb_private::RegisterInfo *reg_info,40lldb_private::RegisterValue &value) override;4142bool WriteRegister(const lldb_private::RegisterInfo *reg_info,43const lldb_private::RegisterValue &value) override;4445bool ReadAllRegisterValues(lldb::WritableDataBufferSP &data_sp) override;4647bool WriteAllRegisterValues(const lldb::DataBufferSP &data_sp) override;4849uint32_t ConvertRegisterKindToRegisterNumber(lldb::RegisterKind kind,50uint32_t num) override;5152private:53// For RegisterContextLLDB only5455lldb_private::RegisterSet m_reg_set0; // register set 0 (PC only)56lldb_private::RegisterInfo m_pc_reg_info;5758RegisterContextDummy(const RegisterContextDummy &) = delete;59const RegisterContextDummy &operator=(const RegisterContextDummy &) = delete;60};6162} // namespace lldb_private6364#endif // LLDB_SOURCE_PLUGINS_PROCESS_UTILITY_REGISTERCONTEXTDUMMY_H656667