1 //===-- RegisterContextPOSIXCore_x86_64.h -----------------------*- C++ -*-===// 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_ELF_CORE_REGISTERCONTEXTPOSIXCORE_X86_64_H 10 #define LLDB_SOURCE_PLUGINS_PROCESS_ELF_CORE_REGISTERCONTEXTPOSIXCORE_X86_64_H 11 12 #include "Plugins/Process/Utility/RegisterContextPOSIX_x86.h" 13 #include "Plugins/Process/elf-core/RegisterUtilities.h" 14 15 class RegisterContextCorePOSIX_x86_64 : public RegisterContextPOSIX_x86 { 16 public: 17 RegisterContextCorePOSIX_x86_64( 18 lldb_private::Thread &thread, 19 lldb_private::RegisterInfoInterface *register_info, 20 const lldb_private::DataExtractor &gpregset, 21 llvm::ArrayRef<lldb_private::CoreNote> notes); 22 23 bool ReadRegister(const lldb_private::RegisterInfo *reg_info, 24 lldb_private::RegisterValue &value) override; 25 26 bool WriteRegister(const lldb_private::RegisterInfo *reg_info, 27 const lldb_private::RegisterValue &value) override; 28 29 bool ReadAllRegisterValues(lldb::DataBufferSP &data_sp) override; 30 31 bool WriteAllRegisterValues(const lldb::DataBufferSP &data_sp) override; 32 33 bool HardwareSingleStep(bool enable) override; 34 35 protected: 36 bool ReadGPR() override; 37 38 bool ReadFPR() override; 39 40 bool WriteGPR() override; 41 42 bool WriteFPR() override; 43 44 private: 45 std::unique_ptr<uint8_t[]> m_gpregset; 46 std::unique_ptr<uint8_t[]> m_fpregset; 47 }; 48 49 #endif // LLDB_SOURCE_PLUGINS_PROCESS_ELF_CORE_REGISTERCONTEXTPOSIXCORE_X86_64_H 50