1 //===-- RegisterContextCoreLinux_x86_64.cpp -------------------------*- C++ -*-===// 2 // 3 // The LLVM Compiler Infrastructure 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 10 #include "lldb/Core/DataExtractor.h" 11 #include "lldb/Core/RegisterValue.h" 12 #include "lldb/Target/Thread.h" 13 #include "RegisterContextCoreLinux_x86_64.h" 14 15 RegisterContextCoreLinux_x86_64::RegisterContextCoreLinux_x86_64(Thread &thread, 16 const DataExtractor &gpregset, 17 const DataExtractor &fpregset) 18 : RegisterContextLinux_x86_64(thread, 0) 19 { 20 size_t size, len; 21 22 size = GetGPRSize(); 23 m_gpregset = new uint8_t[size]; 24 len = gpregset.ExtractBytes(0, size, lldb::eByteOrderLittle, m_gpregset); 25 assert(len == size); 26 } 27 28 RegisterContextCoreLinux_x86_64::~RegisterContextCoreLinux_x86_64() 29 { 30 delete [] m_gpregset; 31 } 32 33 bool 34 RegisterContextCoreLinux_x86_64::ReadRegister(const RegisterInfo *reg_info, RegisterValue &value) 35 { 36 value = *(uint64_t *)(m_gpregset + reg_info->byte_offset); 37 return true; 38 } 39 40 bool 41 RegisterContextCoreLinux_x86_64::ReadAllRegisterValues(lldb::DataBufferSP &data_sp) 42 { 43 return false; 44 } 45 46 bool 47 RegisterContextCoreLinux_x86_64::WriteRegister(const RegisterInfo *reg_info, const RegisterValue &value) 48 { 49 return false; 50 } 51 52 bool 53 RegisterContextCoreLinux_x86_64::WriteAllRegisterValues(const lldb::DataBufferSP &data_sp) 54 { 55 return false; 56 } 57 58 bool 59 RegisterContextCoreLinux_x86_64::UpdateAfterBreakpoint() 60 { 61 return false; 62 } 63 64 bool 65 RegisterContextCoreLinux_x86_64::HardwareSingleStep(bool enable) 66 { 67 return false; 68 } 69