GDB (xrefs)
Classes | Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Static Protected Attributes | Private Member Functions | Private Attributes | Friends | List of all members
regcache Class Reference

#include "regcache.h"

Classes

struct  readonly_t
 

Public Member Functions

 regcache (gdbarch *gdbarch)
 
 regcache (readonly_t, const regcache &src)
 
 DISABLE_COPY_AND_ASSIGN (regcache)
 
 ~regcache ()
 
gdbarcharch () const
 
const address_spaceaspace () const
 
void save (regcache_cooked_read_ftype *cooked_read, void *src)
 
enum register_status cooked_read (int regnum, gdb_byte *buf)
 
void cooked_write (int regnum, const gdb_byte *buf)
 
enum register_status raw_read (int regnum, gdb_byte *buf)
 
void raw_write (int regnum, const gdb_byte *buf)
 
template<typename T , typename = RequireLongest<T>>
enum register_status raw_read (int regnum, T *val)
 
template<typename T , typename = RequireLongest<T>>
void raw_write (int regnum, T val)
 
struct valuecooked_read_value (int regnum)
 
template<typename T , typename = RequireLongest<T>>
enum register_status cooked_read (int regnum, T *val)
 
template<typename T , typename = RequireLongest<T>>
void cooked_write (int regnum, T val)
 
void raw_update (int regnum)
 
void raw_collect (int regnum, void *buf) const
 
void raw_collect_integer (int regnum, gdb_byte *addr, int addr_len, bool is_signed) const
 
void raw_supply (int regnum, const void *buf)
 
void raw_supply_integer (int regnum, const gdb_byte *addr, int addr_len, bool is_signed)
 
void raw_supply_zeroed (int regnum)
 
enum register_status get_register_status (int regnum) const
 
void raw_set_cached_value (int regnum, const gdb_byte *buf)
 
void invalidate (int regnum)
 
enum register_status raw_read_part (int regnum, int offset, int len, gdb_byte *buf)
 
void raw_write_part (int regnum, int offset, int len, const gdb_byte *buf)
 
enum register_status cooked_read_part (int regnum, int offset, int len, gdb_byte *buf)
 
void cooked_write_part (int regnum, int offset, int len, const gdb_byte *buf)
 
void supply_regset (const struct regset *regset, int regnum, const void *buf, size_t size)
 
void collect_regset (const struct regset *regset, int regnum, void *buf, size_t size) const
 
void dump (ui_file *file, enum regcache_dump_what what_to_dump)
 
ptid_t ptid () const
 
void set_ptid (const ptid_t ptid)
 
void debug_print_register (const char *func, int regno)
 

Static Public Member Functions

static void regcache_thread_ptid_changed (ptid_t old_ptid, ptid_t new_ptid)
 

Static Public Attributes

static constexpr readonly_t readonly {}
 

Protected Member Functions

 regcache (gdbarch *gdbarch, const address_space *aspace_, bool readonly_p_)
 
int num_raw_registers () const
 

Static Protected Attributes

static std::forward_list< regcache * > current_regcache
 

Private Member Functions

gdb_byteregister_buffer (int regnum) const
 
void restore (struct regcache *src)
 
enum register_status xfer_part (int regnum, int offset, int len, void *in, const void *out, bool is_raw)
 
void transfer_regset (const struct regset *regset, struct regcache *out_regcache, int regnum, const void *in_buf, void *out_buf, size_t size) const
 
void assert_regnum (int regnum) const
 

Private Attributes

struct regcache_descrm_descr
 
const address_space *const m_aspace
 
gdb_bytem_registers
 
signed char * m_register_status
 
const bool m_readonly_p
 
ptid_t m_ptid
 

Friends

struct regcacheget_thread_arch_aspace_regcache (ptid_t ptid, struct gdbarch *gdbarch, struct address_space *aspace)
 
void registers_changed_ptid (ptid_t ptid)
 
void regcache_cpy (struct regcache *dst, struct regcache *src)
 

Detailed Description

Definition at line 232 of file regcache.h.

Constructor & Destructor Documentation

◆ regcache() [1/3]

regcache::regcache ( gdbarch gdbarch)
inline

◆ regcache() [2/3]

regcache::regcache ( readonly_t  ,
const regcache src 
)

Definition at line 213 of file regcache.c.

References do_cooked_read(), gdb_assert, m_readonly_p, and save().

◆ ~regcache()

regcache::~regcache ( )
inline

Definition at line 247 of file regcache.h.

References m_register_status, m_registers, and xfree().

◆ regcache() [3/3]

regcache::regcache ( gdbarch gdbarch,
const address_space aspace_,
bool  readonly_p_ 
)
protected

Member Function Documentation

◆ arch()

gdbarch * regcache::arch ( ) const

Definition at line 221 of file regcache.c.

References regcache_descr::gdbarch, and m_descr.

Referenced by aarch32_gp_regcache_supply(), aarch64_fbsd_fetch_inferior_registers(), aarch64_fbsd_store_inferior_registers(), aarch64_software_single_step(), aarch64_store_return_value(), adjust_pc_after_break(), aix_thread_wait(), alpha_extract_return_value(), alpha_next_pc(), alpha_software_single_step(), alpha_store_return_value(), alphabsd_fetch_inferior_registers(), alphabsd_store_inferior_registers(), amd64_collect_fpregset(), amd64_collect_fxsave(), amd64_collect_native_gregset(), amd64_collect_xsave(), amd64_linux_fetch_inferior_registers(), amd64_linux_store_inferior_registers(), amd64_supply_fpregset(), amd64_supply_fxsave(), amd64_supply_native_gregset(), amd64_supply_xsave(), amd64bsd_fetch_inferior_registers(), amd64bsd_store_inferior_registers(), amd64obsd_collect_uthread(), amd64obsd_supply_uthread(), arc_write_pc(), arm_extract_return_value(), arm_fbsd_fetch_inferior_registers(), arm_fbsd_store_inferior_registers(), arm_is_thumb(), arm_linux_fetch_inferior_registers(), arm_linux_sigreturn_next_pc(), arm_linux_software_single_step(), arm_linux_store_inferior_registers(), arm_linux_supply_gregset(), arm_software_single_step(), arm_store_return_value(), arm_supply_gregset(), arm_write_pc(), assert_regnum(), bfin_extract_return_value(), bookmark_1(), BP_MANIPULATION(), branch_dest(), bsd_uthread_fetch_registers(), bsd_uthread_store_registers(), bx_write_pc(), cancel_breakpoint(), cris_extract_return_value(), cris_software_single_step(), cris_store_return_value(), cris_supply_gregset(), debug_print_register(), default_skip_permanent_breakpoint(), displaced_in_arm_mode(), displaced_step_prepare_throw(), do_target_wait(), do_windows_fetch_inferior_registers(), do_windows_store_inferior_registers(), dump(), e500_move_ev_register(), extended_mips16_next_pc(), fbsd_collect_thread_registers(), fetch_all_gp_regs(), fetch_altivec_register(), fetch_fp_regs(), fetch_fpregs_from_thread(), fetch_gp_regs(), fetch_gregs_from_thread(), fetch_ppc_registers(), fetch_register(), fetch_register_using_p(), fetch_regs_kernel_thread(), fetch_regs_user_thread(), fetch_spe_register(), fetch_vfp_regs(), fetch_vsx_register(), fill_fpregset(), fill_fprs(), fill_gprs32(), fill_gprs64(), fill_gregset(), fill_sprs32(), fill_sprs64(), fill_vrregset(), fill_vsxregset(), find_func_descr(), find_step_target(), frv_extract_return_value(), ft32_extract_return_value(), ft32_store_return_value(), gdbsim_fetch_register(), gdbsim_store_register(), get_core_registers(), get_return_value(), get_thread_arch_aspace_regcache(), gnu_fetch_registers(), gnu_store_registers(), go32_fetch_registers(), go32_store_registers(), h8300_extract_return_value(), h8300_store_return_value(), h8300h_extract_return_value(), h8300h_store_return_value(), handle_inferior_event_1(), handle_segmentation_fault(), handle_signal_stop(), hppa_linux_fetch_inferior_registers(), hppa_linux_store_inferior_registers(), i386_collect_fpregset(), i386_collect_gregset(), i386_darwin_fetch_inferior_registers(), i386_darwin_store_inferior_registers(), i386_linux_fetch_inferior_registers(), i386_linux_get_syscall_number_from_regcache(), i386_linux_resume(), i386_linux_store_inferior_registers(), i386_mmx_regnum_to_fp_regnum(), i386_mpx_bd_base(), i386_supply_fpregset(), i386_supply_gregset(), i386nto_supply_gregset(), i386obsd_collect_uthread(), i386obsd_supply_pcb(), i386obsd_supply_uthread(), i387_collect_fsave(), i387_collect_fxsave(), i387_collect_xsave(), i387_supply_fsave(), i387_supply_fxsave(), i387_supply_xsave(), ia64_extract_return_value(), ia64_linux_fetch_register(), ia64_linux_fetch_registers(), ia64_linux_store_register(), ia64_linux_store_registers(), ia64_store_return_value(), inf_child_fetch_inferior_registers(), inf_ptrace_fetch_register(), inf_ptrace_fetch_registers(), inf_ptrace_store_register(), inf_ptrace_store_registers(), iq2000_extract_return_value(), jit_frame_prev_register(), linux_collect_thread_registers(), linux_nat_wait_1(), lm32_extract_return_value(), lm32_store_return_value(), m32c_pseudo_register_read(), m32c_pseudo_register_write(), m32c_read_flg(), m32r_extract_return_value(), m32r_linux_collect_gregset(), m32r_linux_supply_gregset(), m32r_store_return_value(), m68k_svr4_extract_return_value(), m68k_svr4_store_return_value(), m68kbsd_collect_fpregset(), m68kbsd_supply_fpregset(), m88k_store_arguments(), mi_cmd_data_write_register_values(), micromips_next_pc(), mips16_next_pc(), mips32_next_pc(), mips64_fill_fpregset(), mips64_fill_gregset(), mips64_linux_regsets_fetch_registers(), mips64_linux_regsets_store_registers(), mips64_supply_fpregset(), mips64_supply_gregset(), mips_fbsd_collect_fpregs(), mips_fbsd_collect_fpregset(), mips_fbsd_collect_gregs(), mips_fbsd_collect_gregset(), mips_fbsd_fetch_inferior_registers(), mips_fbsd_store_inferior_registers(), mips_fbsd_supply_fpregs(), mips_fbsd_supply_fpregset(), mips_fbsd_supply_gregs(), mips_fbsd_supply_gregset(), mips_fill_fpregset(), mips_fill_gregset(), mips_linux_write_pc(), mips_next_pc(), mips_read_pc(), mips_software_single_step(), mips_supply_fpregset(), mips_supply_gregset(), mips_write_pc(), mipsnbsd_fetch_inferior_registers(), mipsnbsd_fill_fpreg(), mipsnbsd_fill_reg(), mipsnbsd_store_inferior_registers(), mipsnbsd_supply_fpreg(), mipsnbsd_supply_fpregset(), mipsnbsd_supply_gregset(), mipsnbsd_supply_reg(), moxie_extract_return_value(), moxie_software_single_step(), moxie_store_return_value(), nios2_get_next_pc(), num_raw_registers(), old_fetch_inferior_registers(), old_store_inferior_registers(), parse_spufs_run(), ppc_collect_fpregset(), ppc_collect_gregset(), ppc_collect_reg(), ppc_collect_vrregset(), ppc_collect_vsxregset(), ppc_deal_with_atomic_sequence(), ppc_linux_collect_gregset(), ppc_linux_supply_gregset(), ppc_linux_syscall_record(), ppc_linux_write_pc(), ppc_ravenscar_generic_fetch_registers(), ppc_ravenscar_generic_store_registers(), ppc_supply_fpregset(), ppc_supply_gregset(), ppc_supply_reg(), ppc_supply_vrregset(), ppc_supply_vsxregset(), ppcfbsd_fetch_inferior_registers(), ppcfbsd_store_inferior_registers(), ppcfbsd_supply_pcb(), ppcnbsd_fetch_inferior_registers(), ppcnbsd_store_inferior_registers(), ppcnbsd_supply_pcb(), ppcobsd_fetch_registers(), ppcobsd_store_registers(), ppcobsd_supply_pcb(), ppu2spu_prev_arch(), ppu2spu_prev_register(), proceed(), process_g_packet(), procfs_fetch_registers(), procfs_store_registers(), ravenscar_fetch_registers(), ravenscar_prepare_to_store(), ravenscar_store_registers(), raw_write(), record_btrace_fetch_registers(), record_full_core_fetch_registers(), record_full_core_open_1(), record_full_goto_insn(), record_full_message(), record_full_reg_alloc(), record_full_registers_change(), record_full_save(), record_full_store_registers(), record_full_wait_1(), record_linux_msghdr(), record_linux_sockaddr(), record_linux_system_call(), regcache_read_pc(), regcache_register_size(), regcache_write_pc(), register_changed_p(), remote_fetch_registers(), remote_prepare_to_store(), remote_store_registers(), restore_infcall_suspend_state(), resume_1(), resume_stopped_resumed_lwps(), return_command(), rs6000_fetch_inferior_registers(), rs6000_pseudo_register_read(), rs6000_pseudo_register_write(), rs6000_software_single_step(), rs6000_store_inferior_registers(), s390_all_but_pc_registers_record(), s390_linux_fetch_inferior_registers(), s390_linux_syscall_record(), s390_software_single_step(), s390_write_pc(), save_bookmark_command(), save_infcall_suspend_state(), save_stop_reason(), sentinel_frame_prev_arch(), sh64_extract_return_value(), sh64_store_return_value(), sh_corefile_collect_regset(), sh_corefile_supply_regset(), sh_extract_return_value_fpu(), sh_extract_return_value_nofpu(), sh_store_return_value_fpu(), sh_store_return_value_nofpu(), shnbsd_fetch_inferior_registers(), shnbsd_store_inferior_registers(), sparc32_store_arguments(), sparc32obsd_collect_uthread(), sparc32obsd_supply_uthread(), sparc64_collect_fpregset(), sparc64_collect_gregset(), sparc64_extract_floating_fields(), sparc64_linux_write_pc(), sparc64_store_arguments(), sparc64_store_floating_fields(), sparc64_supply_fpregset(), sparc64_supply_gregset(), sparc64nbsd_collect_fpregset(), sparc64nbsd_collect_gregset(), sparc64nbsd_supply_fpregset(), sparc64nbsd_supply_gregset(), sparc64obsd_collect_uthread(), sparc64obsd_supply_uthread(), sparc_analyze_control_transfer(), sparc_collect_rwindow(), sparc_fetch_inferior_registers(), sparc_linux_write_pc(), sparc_ravenscar_fetch_registers(), sparc_ravenscar_store_registers(), sparc_software_single_step(), sparc_store_inferior_registers(), sparc_supply_rwindow(), sparc_write_pc(), spu2ppu_prev_arch(), spu2ppu_prev_register(), spu_fetch_inferior_registers(), spu_fetch_registers(), spu_pseudo_register_read_spu(), spu_pseudo_register_write_spu(), spu_read_pc(), spu_software_single_step(), spu_store_registers(), store_all_gp_regs(), store_altivec_register(), store_fp_regs(), store_fpregs_to_thread(), store_gp_regs(), store_gregs_to_thread(), store_ppc_registers(), store_register(), store_register_using_P(), store_registers_using_G(), store_regs(), store_regs_kernel_thread(), store_regs_user_thread(), store_spe_register(), store_vfp_regs(), store_vsx_register(), supply_64bit_reg(), supply_fpregset(), supply_fprs(), supply_gprs64(), supply_gregset(), supply_gregset_reg(), supply_register_at_address(), supply_sprs32(), supply_sprs64(), supply_vrregset(), supply_vsxregset(), tfile_fetch_registers(), tic6x_get_next_pc(), tracefile_fetch_registers(), use_displaced_stepping(), v850_extract_return_value(), v850_store_return_value(), vax_store_arguments(), windows_resume(), xfer_part(), xtensa_extract_return_value(), xtensa_register_read_masked(), xtensa_register_write_masked(), xtensa_store_return_value(), and xtensa_supply_gregset().

◆ aspace()

const address_space* regcache::aspace ( ) const
inline

◆ assert_regnum()

void regcache::assert_regnum ( int  regnum) const
private

◆ collect_regset()

void regcache::collect_regset ( const struct regset regset,
int  regnum,
void *  buf,
size_t  size 
) const

◆ cooked_read() [1/2]

enum register_status regcache::cooked_read ( int  regnum,
gdb_byte buf 
)

◆ cooked_read() [2/2]

template<typename T , typename >
enum register_status regcache::cooked_read ( int  regnum,
T *  val 
)

◆ cooked_read_part()

enum register_status regcache::cooked_read_part ( int  regnum,
int  offset,
int  len,
gdb_byte buf 
)

Definition at line 980 of file regcache.c.

References gdb_assert, offset, regnum, and xfer_part().

Referenced by regcache_cooked_read_part().

◆ cooked_read_value()

struct value * regcache::cooked_read_value ( int  regnum)

◆ cooked_write() [1/2]

void regcache::cooked_write ( int  regnum,
const gdb_byte buf 
)

◆ cooked_write() [2/2]

template<typename T , typename >
void regcache::cooked_write ( int  regnum,
val 
)

◆ cooked_write_part()

void regcache::cooked_write_part ( int  regnum,
int  offset,
int  len,
const gdb_byte buf 
)

Definition at line 994 of file regcache.c.

References gdb_assert, offset, regnum, and xfer_part().

Referenced by regcache_cooked_write_part().

◆ debug_print_register()

void regcache::debug_print_register ( const char *  func,
int  regno 
)

◆ DISABLE_COPY_AND_ASSIGN()

regcache::DISABLE_COPY_AND_ASSIGN ( regcache  )

◆ dump()

void regcache::dump ( ui_file file,
enum regcache_dump_what  what_to_dump 
)

◆ get_register_status()

enum register_status regcache::get_register_status ( int  regnum) const

◆ invalidate()

void regcache::invalidate ( int  regnum)

Definition at line 385 of file regcache.c.

References assert_regnum(), gdb_assert, m_readonly_p, m_register_status, REG_UNKNOWN, and regnum.

Referenced by regcache_invalidate().

◆ num_raw_registers()

int regcache::num_raw_registers ( ) const
protected

Definition at line 1275 of file regcache.c.

References arch(), and gdbarch_num_regs().

Referenced by cooked_read(), cooked_read_value(), cooked_write(), dump(), and get_register_status().

◆ ptid()

ptid_t regcache::ptid ( ) const
inline

◆ raw_collect()

void regcache::raw_collect ( int  regnum,
void *  buf 
) const

◆ raw_collect_integer()

void regcache::raw_collect_integer ( int  regnum,
gdb_byte addr,
int  addr_len,
bool  is_signed 
) const

◆ raw_read() [1/2]

enum register_status regcache::raw_read ( int  regnum,
gdb_byte buf 
)

◆ raw_read() [2/2]

template<typename T , typename >
enum register_status regcache::raw_read ( int  regnum,
T *  val 
)

◆ raw_read_part()

enum register_status regcache::raw_read_part ( int  regnum,
int  offset,
int  len,
gdb_byte buf 
)

Definition at line 950 of file regcache.c.

References assert_regnum(), offset, regnum, and xfer_part().

Referenced by regcache_raw_read_part().

◆ raw_set_cached_value()

void regcache::raw_set_cached_value ( int  regnum,
const gdb_byte buf 
)

◆ raw_supply()

void regcache::raw_supply ( int  regnum,
const void *  buf 
)

◆ raw_supply_integer()

void regcache::raw_supply_integer ( int  regnum,
const gdb_byte addr,
int  addr_len,
bool  is_signed 
)

◆ raw_supply_zeroed()

void regcache::raw_supply_zeroed ( int  regnum)

◆ raw_update()

void regcache::raw_update ( int  regnum)

◆ raw_write() [1/2]

void regcache::raw_write ( int  regnum,
const gdb_byte buf 
)

◆ raw_write() [2/2]

template<typename T , typename >
void regcache::raw_write ( int  regnum,
val 
)

◆ raw_write_part()

void regcache::raw_write_part ( int  regnum,
int  offset,
int  len,
const gdb_byte buf 
)

Definition at line 964 of file regcache.c.

References assert_regnum(), offset, regnum, and xfer_part().

Referenced by regcache_raw_write_part().

◆ regcache_thread_ptid_changed()

void regcache::regcache_thread_ptid_changed ( ptid_t  old_ptid,
ptid_t  new_ptid 
)
static

Definition at line 470 of file regcache.c.

References current_regcache, ptid(), ptid_equal(), and set_ptid().

Referenced by _initialize_regcache().

◆ register_buffer()

gdb_byte * regcache::register_buffer ( int  regnum) const
private

◆ restore()

void regcache::restore ( struct regcache src)
private

◆ save()

void regcache::save ( regcache_cooked_read_ftype cooked_read,
void *  src 
)

◆ set_ptid()

void regcache::set_ptid ( const ptid_t  ptid)
inline

Definition at line 330 of file regcache.h.

References m_ptid, and ptid().

Referenced by get_thread_arch_aspace_regcache(), and regcache_thread_ptid_changed().

◆ supply_regset()

void regcache::supply_regset ( const struct regset regset,
int  regnum,
const void *  buf,
size_t  size 
)

◆ transfer_regset()

void regcache::transfer_regset ( const struct regset regset,
struct regcache out_regcache,
int  regnum,
const void *  in_buf,
void *  out_buf,
size_t  size 
) const
private

◆ xfer_part()

enum register_status regcache::xfer_part ( int  regnum,
int  offset,
int  len,
void *  in,
const void *  out,
bool  is_raw 
)
private

Friends And Related Function Documentation

◆ get_thread_arch_aspace_regcache

struct regcache* get_thread_arch_aspace_regcache ( ptid_t  ptid,
struct gdbarch gdbarch,
struct address_space aspace 
)
friend

Definition at line 407 of file regcache.c.

◆ regcache_cpy

void regcache_cpy ( struct regcache dst,
struct regcache src 
)
friend

Definition at line 342 of file regcache.c.

◆ registers_changed_ptid

void registers_changed_ptid ( ptid_t  ptid)
friend

Definition at line 491 of file regcache.c.

Member Data Documentation

◆ current_regcache

std::forward_list< regcache * > regcache::current_regcache
staticprotected

◆ m_aspace

const address_space* const regcache::m_aspace
private

Definition at line 367 of file regcache.h.

Referenced by aspace().

◆ m_descr

struct regcache_descr* regcache::m_descr
private

◆ m_ptid

ptid_t regcache::m_ptid
private

Definition at line 384 of file regcache.h.

Referenced by ptid(), regcache(), and set_ptid().

◆ m_readonly_p

const bool regcache::m_readonly_p
private

◆ m_register_status

signed char* regcache::m_register_status
private

◆ m_registers

gdb_byte* regcache::m_registers
private

Definition at line 372 of file regcache.h.

Referenced by regcache(), register_buffer(), save(), and ~regcache().

◆ readonly

constexpr readonly_t regcache::readonly {}
static

Definition at line 240 of file regcache.h.

Referenced by get_return_value(), and regcache_dup().


The documentation for this class was generated from the following files: