GDB (xrefs)
Loading...
Searching...
No Matches
Classes | Typedefs | Enumerations | Functions
regcache.h File Reference
#include "gdbsupport/common-regcache.h"
#include "gdbsupport/function-view.h"

Go to the source code of this file.

Classes

struct  regcache_map_entry
 
struct  cached_reg_t
 
class  reg_buffer
 
class  readable_regcache
 
class  detached_regcache
 
class  regcache
 
class  readonly_detached_regcache
 
class  register_dump
 

Typedefs

typedef gdb::function_view< register_status(int regnum, gdb_byte *buf) register_read_ftype)
 
using regcache_up = std::unique_ptr<regcache>
 

Enumerations

enum  { REGCACHE_MAP_SKIP = -1 }
 

Functions

struct regcacheget_current_regcache (void)
 
struct regcacheget_thread_regcache (process_stratum_target *target, ptid_t ptid)
 
struct regcacheget_thread_regcache (thread_info *thread)
 
struct regcacheget_thread_arch_regcache (process_stratum_target *targ, ptid_t, struct gdbarch *)
 
struct regcacheget_thread_arch_aspace_regcache (inferior *inf_for_target_calls, ptid_t, struct gdbarch *, struct address_space *)
 
enum register_status regcache_raw_read_signed (struct regcache *regcache, int regnum, LONGEST *val)
 
void regcache_raw_write_signed (struct regcache *regcache, int regnum, LONGEST val)
 
void regcache_raw_write_unsigned (struct regcache *regcache, int regnum, ULONGEST val)
 
LONGEST regcache_raw_get_signed (struct regcache *regcache, int regnum)
 
enum register_status regcache_cooked_read_signed (struct regcache *regcache, int regnum, LONGEST *val)
 
enum register_status regcache_cooked_read_unsigned (struct regcache *regcache, int regnum, ULONGEST *val)
 
void regcache_cooked_write_signed (struct regcache *regcache, int regnum, LONGEST val)
 
void regcache_cooked_write_unsigned (struct regcache *regcache, int regnum, ULONGEST val)
 
void regcache_write_pc (struct regcache *regcache, CORE_ADDR pc)
 
static int regcache_map_entry_size (const struct regcache_map_entry *map)
 
void regcache_supply_regset (const struct regset *regset, struct regcache *regcache, int regnum, const void *buf, size_t size)
 
void regcache_collect_regset (const struct regset *regset, const struct regcache *regcache, int regnum, void *buf, size_t size)
 
bool regcache_map_supplies (const struct regcache_map_entry *map, int regnum, struct gdbarch *gdbarch, size_t size)
 
struct typeregister_type (struct gdbarch *gdbarch, int regnum)
 
int register_size (struct gdbarch *gdbarch, int regnum)
 
void registers_changed (void)
 
void registers_changed_ptid (process_stratum_target *target, ptid_t ptid)
 
void registers_changed_thread (thread_info *thread)
 

Typedef Documentation

◆ regcache_up

using regcache_up = std::unique_ptr<regcache>

Definition at line 471 of file regcache.h.

◆ register_read_ftype

typedef gdb::function_view<register_status (int regnum, gdb_byte *buf) register_read_ftype)

Definition at line 176 of file regcache.h.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
REGCACHE_MAP_SKIP 

Definition at line 119 of file regcache.h.

Function Documentation

◆ get_current_regcache()

struct regcache * get_current_regcache ( void )
extern

Definition at line 429 of file regcache.c.

References get_thread_regcache(), and inferior_thread().

Referenced by arc_insn_get_branch_target(), arc_insn_get_operand_value(), arc_insn_get_operand_value_signed(), bookmark_1(), bsd_kvm_pcb_cmd(), bsd_kvm_proc_cmd(), bsd_kvm_target_open(), call_function_by_hand_dummy(), core_target_open(), create_new_frame(), current_me_module(), current_options(), darwin_read_exec_load_addr_at_init(), darwin_solib_create_inferior_hook(), darwin_solib_get_all_image_info_addr_at_init(), fork_load_infrun_state(), fork_save_infrun_state(), frame_pop(), frv_fdpic_loadmap_addresses(), generic_load(), get_call_return_value(), get_current_frame(), get_return_value(), get_traceframe_location(), handle_inferior_event(), handle_signal_stop(), i386_mpx_bd_base(), insert_single_step_breakpoints(), keep_going_pass_signal(), m32c_virtual_frame_pointer(), procfs_target::make_corefile_notes(), mi_cmd_data_write_register_values(), or1k_single_step_through_delay(), print_signal_received_reason(), proceed(), put_frame_register(), record_btrace_set_replay(), record_full_core_open_1(), record_full_goto_entry(), record_full_goto_insn(), record_full_restore(), record_full_wait_1(), regcache_print(), restore_infcall_suspend_state(), i386_fbsd_nat_target::resume(), record_full_target::resume(), windows_nat_target::resume(), resume_1(), run_command_1(), save_bookmark_command(), save_infcall_suspend_state(), record_full_base_target::save_record(), ia64_linux_nat_target::stopped_data_address(), svr4_handle_solib_event(), tfind_pc_command(), xtensa_read_register(), and xtensa_write_register().

◆ get_thread_arch_aspace_regcache()

struct regcache * get_thread_arch_aspace_regcache ( inferior * inf_for_target_calls,
ptid_t ptid,
struct gdbarch * gdbarch,
struct address_space * aspace )
extern

Definition at line 466 of file regcache.c.

Referenced by get_thread_arch_regcache(), and handle_inferior_event().

◆ get_thread_arch_regcache()

struct regcache * get_thread_arch_regcache ( process_stratum_target * targ,
ptid_t ptid,
struct gdbarch * gdbarch )
extern

◆ get_thread_regcache() [1/2]

struct regcache * get_thread_regcache ( process_stratum_target * target,
ptid_t ptid )
extern

Definition at line 400 of file regcache.c.

References current_thread_arch, current_thread_ptid, current_thread_target, find_inferior_ptid(), get_thread_arch_regcache(), regcache::ptid(), set_current_inferior(), and target_thread_architecture().

Referenced by aarch64_linux_get_syscall_number(), aarch64_remove_non_address_bits(), adjust_pc_after_break(), amd64_linux_get_syscall_number(), arm_linux_get_syscall_number(), bfin_linux_get_syscall_number(), breakpoint_kind(), btrace_add_pc(), darwin_nat_target::cancel_breakpoint(), fbsd_nat_target::detach(), displaced_step_prepare_throw(), do_target_wait_1(), elf_gnu_ifunc_resolver_return_stop(), ia64_linux_nat_target::enable_watchpoints_in_psr(), find_inline_frame_state(), displaced_step_buffers::finish(), finish_step_over(), get_current_regcache(), get_thread_regcache(), get_thread_regcache_for_ptid(), handle_inferior_event(), handle_one(), handle_signal_stop(), handle_syscall_event(), i386_linux_get_syscall_number(), keep_going_pass_signal(), keep_going_stepped_thread(), linux_nat_wait_1(), linux_resume_one_lwp_throw(), arc_linux_nat_target::low_prepare_to_resume(), i386_linux_nat_target::low_resume(), mips_linux_get_syscall_number(), post_create_inferior(), ppc_linux_get_syscall_number(), displaced_step_buffers::prepare(), process_one_event(), procfs_do_thread_registers(), displaced_step_buffers::restore_in_ptid(), resume_1(), resume_stopped_resumed_lwps(), s390_linux_get_syscall_number(), save_stop_reason(), save_waitstatus(), sparc32_linux_get_syscall_number(), sparc64_linux_get_syscall_number(), status_callback(), thread_still_needs_step_over_bp(), use_displaced_stepping(), and aix_thread_target::wait().

◆ get_thread_regcache() [2/2]

struct regcache * get_thread_regcache ( thread_info * thread)
extern

◆ regcache_collect_regset()

void regcache_collect_regset ( const struct regset * regset,
const struct regcache * regcache,
int regnum,
void * buf,
size_t size )
extern

◆ regcache_cooked_read_signed()

enum register_status regcache_cooked_read_signed ( struct regcache * regcache,
int regnum,
LONGEST * val )
extern

Definition at line 772 of file regcache.c.

References readable_regcache::cooked_read(), and regnum.

Referenced by arc_insn_get_operand_value_signed().

◆ regcache_cooked_read_unsigned()

enum register_status regcache_cooked_read_unsigned ( struct regcache * regcache,
int regnum,
ULONGEST * val )
extern

Definition at line 796 of file regcache.c.

References readable_regcache::cooked_read(), and regnum.

Referenced by alpha_extract_return_value(), amd64_displaced_step_fixup(), arc_extract_return_value(), arc_insn_get_branch_target(), arc_insn_get_operand_value(), arc_linux_software_single_step(), arc_write_pc(), arm_extract_return_value(), arm_linux_cleanup_svc(), arm_linux_get_syscall_number(), arm_linux_sigreturn_next_pc(), arm_write_pc(), bfin_extract_return_value(), BP_MANIPULATION(), bx_write_pc(), cris_extract_return_value(), current_me_module(), current_options(), darwin_read_exec_load_addr_at_init(), displaced_in_arm_mode(), displaced_read_reg(), do_ppc_sysv_return_value(), ia64_linux_nat_target::enable_watchpoints_in_psr(), find_func_descr(), fixup_riprel(), frv_extract_return_value(), frv_fdpic_loadmap_addresses(), ft32_extract_return_value(), ravenscar_arch_ops::get_stack_base(), h8300_extract_return_value(), h8300h_extract_return_value(), i386_displaced_step_fixup(), ia64_allocate_new_rse_frame(), ia64_extract_return_value(), ia64_pseudo_register_write(), ia64_push_dummy_call(), ia64_write_pc(), iq2000_extract_return_value(), lm32_extract_return_value(), arc_linux_nat_target::low_prepare_to_resume(), i386_linux_nat_target::low_resume(), m32c_return_value(), m32r_extract_return_value(), moxie_extract_return_value(), moxie_software_single_step(), msp430_return_value(), nds32_extract_return_value(), or1k_return_value(), or1k_single_step_through_delay(), ppc64_sysv_abi_push_dummy_call(), ppc64_sysv_abi_return_value_base(), ppc_displaced_step_fixup(), ppc_sysv_abi_push_dummy_call(), regcache_read_pc(), i386_fbsd_nat_target::resume(), riscv_return_value(), rl78_return_value(), rs6000_lynx178_push_dummy_call(), rs6000_lynx178_return_value(), rs6000_push_dummy_call(), rs6000_return_value(), rx_return_value(), s390_displaced_step_fixup(), s390_linux_get_syscall_number(), s390_push_dummy_call(), s390_supply_tdb_regset(), sh_extract_return_value_nofpu(), sparc32_return_value(), sparc32_supply_gregset(), sparc64_linux_write_pc(), sparc64_supply_gregset(), sparc_linux_write_pc(), sparc_store_inferior_registers(), ia64_linux_nat_target::stopped_data_address(), v850_extract_return_value(), and xtensa_register_write_masked().

◆ regcache_cooked_write_signed()

void regcache_cooked_write_signed ( struct regcache * regcache,
int regnum,
LONGEST val )
extern

◆ regcache_cooked_write_unsigned()

void regcache_cooked_write_unsigned ( struct regcache * regcache,
int regnum,
ULONGEST val )
extern

Definition at line 825 of file regcache.c.

References regcache::cooked_write(), and regnum.

Referenced by aarch64_displaced_step_adr(), aarch64_displaced_step_b(), aarch64_displaced_step_fixup(), aarch64_displaced_step_ldr_literal(), aarch64_displaced_step_others(), aarch64_push_dummy_call(), alpha_store_return_value(), amd64_displaced_step_fixup(), amd64_linux_write_pc(), arc_push_dummy_call(), arc_store_return_value(), arc_write_pc(), arm_displaced_step_fixup(), arm_push_dummy_call(), arm_write_pc(), avr_push_dummy_call(), avr_write_pc(), bfin_push_dummy_call(), BP_MANIPULATION(), branch_write_pc(), bx_write_pc(), cris_push_dummy_call(), cris_store_return_value(), csky_push_dummy_call(), csky_return_value(), csky_write_pc(), displaced_write_reg(), do_ppc_sysv_return_value(), ia64_linux_nat_target::enable_watchpoints_in_psr(), fixup_riprel(), frv_push_dummy_call(), ft32_store_return_value(), h8300_push_dummy_call(), h8300_store_return_value(), h8300h_store_return_value(), hppa32_push_dummy_call(), hppa64_push_dummy_call(), hppa_linux_target_write_pc(), hppa_write_pc(), i386_linux_write_pc(), ia64_allocate_new_rse_frame(), ia64_linux_write_pc(), ia64_pseudo_register_write(), ia64_push_dummy_call(), ia64_store_return_value(), ia64_write_pc(), iq2000_push_dummy_call(), lm32_store_return_value(), loongarch_push_dummy_call(), arc_linux_nat_target::low_prepare_to_resume(), m32c_push_dummy_call(), m32c_return_value(), m32r_push_dummy_call(), m32r_store_return_value(), m68hc11_pseudo_register_write(), m68hc11_push_dummy_call(), mep_push_dummy_call(), mips_eabi_push_dummy_call(), mips_linux_write_pc(), mips_n32n64_push_dummy_call(), mips_o32_push_dummy_call(), mips_o64_push_dummy_call(), mips_write_pc(), mn10300_push_dummy_call(), moxie_store_return_value(), msp430_push_dummy_call(), msp430_return_value(), nds32_push_dummy_call(), nds32_store_return_value(), nios2_push_dummy_call(), or1k_push_dummy_call(), pass_in_x(), ppc64_sysv_abi_push_dummy_call(), ppc64_sysv_abi_return_value_base(), ppc_displaced_step_fixup(), ppc_linux_write_pc(), ppc_sysv_abi_push_dummy_call(), regcache_write_pc(), i386_fbsd_nat_target::resume(), riscv_push_dummy_call(), rl78_push_dummy_call(), rl78_return_value(), rs6000_lynx178_return_value(), rs6000_return_value(), rx_push_dummy_call(), rx_return_value(), s390_displaced_step_fixup(), s390_handle_arg(), s390_push_dummy_call(), s390_register_return_value(), s390_write_pc(), sh_push_dummy_call_fpu(), sh_push_dummy_call_nofpu(), sh_store_return_value_nofpu(), sparc32_push_dummy_call(), sparc64_linux_write_pc(), sparc64_push_dummy_call(), sparc64_store_arguments(), sparc_linux_write_pc(), sparc_write_pc(), ia64_linux_nat_target::stopped_data_address(), tic6x_push_dummy_call(), tilegx_push_dummy_call(), tilegx_write_pc(), v850_push_dummy_call(), v850_store_return_value(), vax_push_dummy_call(), xstormy16_push_dummy_call(), xtensa_push_dummy_call(), and xtensa_register_write_masked().

◆ regcache_map_entry_size()

static int regcache_map_entry_size ( const struct regcache_map_entry * map)
inlinestatic

◆ regcache_map_supplies()

bool regcache_map_supplies ( const struct regcache_map_entry * map,
int regnum,
struct gdbarch * gdbarch,
size_t size )
extern

◆ regcache_raw_get_signed()

LONGEST regcache_raw_get_signed ( struct regcache * regcache,
int regnum )
extern

◆ regcache_raw_read_signed()

enum register_status regcache_raw_read_signed ( struct regcache * regcache,
int regnum,
LONGEST * val )
extern

◆ regcache_raw_write_signed()

void regcache_raw_write_signed ( struct regcache * regcache,
int regnum,
LONGEST val )
extern

◆ regcache_raw_write_unsigned()

void regcache_raw_write_unsigned ( struct regcache * regcache,
int regnum,
ULONGEST val )
extern

◆ regcache_supply_regset()

void regcache_supply_regset ( const struct regset * regset,
struct regcache * regcache,
int regnum,
const void * buf,
size_t size )
extern

◆ regcache_write_pc()

void regcache_write_pc ( struct regcache * regcache,
CORE_ADDR pc )
extern

◆ register_size()

int register_size ( struct gdbarch * gdbarch,
int regnum )
extern

Definition at line 170 of file regcache.c.

References gdbarch_num_cooked_regs(), regcache_descr(), regnum, size, and regcache_descr::sizeof_register.

Referenced by aarch64_pseudo_read_value_1(), aarch64_pseudo_write_1(), aarch64_store_return_value(), alpha_value_to_register(), amd64_pseudo_register_read_value(), amd64_pseudo_register_write(), BP_MANIPULATION(), check_for_saved(), check_for_saved(), check_for_saved(), check_for_saved(), check_for_saved(), check_for_saved(), collection_list::collect_symbol(), csky_collect_fregset(), csky_supply_fregset(), regcache::debug_print_register(), default_guess_tracepoint_registers(), default_value_from_register(), register_dump_regcache::dump_reg(), register_dump_reg_buffer::dump_reg(), efp_pseudo_register_read(), efp_pseudo_register_write(), value::fetch_lazy_register(), fetch_register(), fetch_register(), linux_nat_trad_target::fetch_register(), fetch_register(), remote_target::fetch_register_using_p(), gdbsim_target::fetch_registers(), tfile_target::fetch_registers(), riscv_linux_nat_target::fetch_registers(), fetch_spe_register(), fill_fpregset(), fill_sprs32(), fill_sprs64(), pv_area::find_reg(), frame_unwind_got_bytes(), frame_unwind_got_constant(), frame_unwind_register_unsigned(), frame_unwind_register_value(), get_frame_register_bytes(), hppa_frame_prev_register_helper(), i386_extract_return_value(), i386_fast_tracepoint_valid_at(), i386_pseudo_register_read_into_value(), i386_pseudo_register_write(), i386_register_to_value(), i386_stap_adjust_register(), i386_store_return_value(), i386_value_to_register(), i387_register_to_value(), ia64_frame_prev_register(), ia64_linux_fetch_register(), ia64_linux_store_register(), ia64_pseudo_register_read(), ia64_pseudo_register_write(), ia64_register_to_value(), info_frame_command_core(), jit_frame_prev_register(), jit_unwind_reg_get_impl(), libunwind_get_reg_special(), loongarch_fill_fpregset(), loongarch_fill_gregset(), loongarch_iterate_over_regset_sections(), loongarch_push_dummy_call(), loongarch_return_value(), loongarch_supply_fpregset(), loongarch_supply_gregset(), m32r_push_dummy_call(), m68k_register_to_value(), map_regcache_remote_table(), mep_pseudo_csr_write(), mips2_fp_compat(), mips64_fill_fpregset(), mips64_linux_register_addr(), mips64_supply_fpregset(), mips_ax_pseudo_register_push_stack(), mips_convert_register_float_case_p(), mips_convert_register_gpreg_case_p(), mips_linux_get_syscall_number(), mips_linux_iterate_over_regset_sections(), mips_linux_restart_reg_p(), mips_n32n64_return_value(), mips_o32_push_dummy_call(), mips_o32_return_value(), mips_print_float_info(), mips_print_fp_register(), mips_pseudo_register_read(), mips_pseudo_register_write(), mips_read_fp_register_double(), mips_read_fp_register_single(), mips_xfer_register(), mn10300_extract_return_value(), mn10300_push_dummy_call(), mn10300_store_return_value(), msp430_pseudo_register_read(), msp430_pseudo_register_write(), nios2_extract_return_value(), nios2_store_return_value(), pass_in_v(), pd_enable(), ppc64_sysv_abi_return_value(), ppc_collect_reg(), ppc_linux_trap_reg_p(), ppc_register_u_addr(), ppc_supply_reg(), print_gp_register_row(), remote_target::process_g_packet(), pseudo_from_raw_register(), pseudo_register_read_portions(), put_frame_register(), put_frame_register_bytes(), pyuw_sniffer(), reg_buffer::raw_collect_part(), raw_from_pseudo_register(), reg_buffer::raw_supply_part(), read_frame_register_unsigned(), read_frame_register_value(), readable_regcache::read_part(), record_full_reg_alloc(), regcache_map_supplies(), regcache_register_size(), register_changed_p(), remote_target::remote_parse_stop_reply(), riscv_iterate_over_regset_sections(), riscv_print_one_register_info(), riscv_pseudo_register_read(), riscv_pseudo_register_write(), riscv_return_value(), rs6000_frame_cache(), rs6000_lynx178_push_dummy_call(), rs6000_push_dummy_call(), rs6000_register_to_value(), rw_pieced_value(), s390_ax_pseudo_register_push_stack(), s390_displaced_step_fixup(), s390_guess_tracepoint_registers(), s390_pseudo_register_read(), s390_pseudo_register_write(), s390_write_pc(), reg_buffer::save(), sh_pseudo_register_write(), sh_push_dummy_call_fpu(), sh_push_dummy_call_nofpu(), sh_register_convert_to_raw(), sh_register_convert_to_virtual(), sparc_execute_dwarf_cfa_vendor_op(), ravenscar_arch_ops::store_one_register(), store_register(), linux_nat_trad_target::store_register(), store_register(), store_register(), remote_target::store_register_using_P(), i386_gnu_nat_target::store_registers(), gdbsim_target::store_registers(), riscv_linux_nat_target::store_registers(), store_spe_register(), supply_64bit_reg(), supply_fpregset_regnum(), ravenscar_arch_ops::supply_one_register(), trad_frame_set_reg_regmap(), regcache::transfer_regset_register(), unwind_infopy_add_saved_register(), windows_fetch_one_register(), and regcache::write_part().

◆ register_type()

struct type * register_type ( struct gdbarch * gdbarch,
int regnum )
extern

Definition at line 158 of file regcache.c.

References regcache_descr::nr_cooked_registers, regcache_descr(), regcache_descr::register_type, and regnum.

Referenced by aarch64_gen_return_address(), aarch64_pseudo_read_value(), amd64_gen_return_address(), amd64_pseudo_register_read_value(), check_for_saved(), readable_regcache::cooked_read_value(), default_register_reggroup_p(), expr::register_operation::do_generate_ax(), do_ppc_sysv_return_value(), dummy_frame_prev_register(), register_dump::dump(), eval_op_register(), amd_dbgapi_target::fetch_registers(), frame_unwind_got_address(), frame_unwind_got_bytes(), frame_unwind_got_constant(), frame_unwind_got_memory(), frame_unwind_got_optimized(), generate_register_struct(), i386_gen_return_address(), i386_pseudo_register_read_value(), ia64_extract_return_value(), ia64_register_reggroup_p(), ia64_store_return_value(), m68k_convert_register_p(), m68k_register_to_value(), m68k_svr4_extract_return_value(), m68k_svr4_store_return_value(), m68k_value_to_register(), mep_pseudo_cr32_read(), mep_pseudo_cr32_write(), mips_register_reggroup_p(), ppc64_sysv_abi_push_dummy_call(), ppc64_sysv_abi_push_freg(), ppc64_sysv_abi_return_value(), ppc64_sysv_abi_return_value_base(), ppc_sysv_abi_push_dummy_call(), rs6000_gen_return_address(), rs6000_lynx178_push_dummy_call(), rs6000_lynx178_return_value(), rs6000_push_dummy_call(), rs6000_return_value(), s390_gen_return_address(), s390_unwind_pseudo_register(), set_gdbarch_register_type(), sh_pseudo_register_read(), sh_pseudo_register_write(), amd_dbgapi_target::store_registers(), and value_of_register_lazy().

◆ registers_changed()

void registers_changed ( void )
extern

◆ registers_changed_ptid()

void registers_changed_ptid ( process_stratum_target * target,
ptid_t ptid )
extern

◆ registers_changed_thread()

void registers_changed_thread ( thread_info * thread)
extern