GDB (xrefs)
|
#include "defs.h"
#include "frame.h"
#include "frame-unwind.h"
#include "frame-base.h"
#include "trad-frame.h"
#include "gdbcmd.h"
#include "gdbcore.h"
#include "gdbtypes.h"
#include "inferior.h"
#include "symfile.h"
#include "arch-utils.h"
#include "regcache.h"
#include "dis-asm.h"
#include "objfiles.h"
#include <algorithm>
#include "gdbarch.h"
Go to the source code of this file.
Classes | |
struct | avr_unwind_cache |
struct | avr_gdbarch_tdep |
struct | avr_stack_item |
Macros | |
#define | AVR_TYPE_ADDRESS_CLASS_FLASH TYPE_ADDRESS_CLASS_1 |
#define | AVR_TYPE_INSTANCE_FLAG_ADDRESS_CLASS_FLASH TYPE_INSTANCE_FLAG_ADDRESS_CLASS_1 |
Enumerations | |
enum | { AVR_REG_W = 24 , AVR_REG_X = 26 , AVR_REG_Y = 28 , AVR_FP_REGNUM = 28 , AVR_REG_Z = 30 , AVR_SREG_REGNUM = 32 , AVR_SP_REGNUM = 33 , AVR_PC_REGNUM = 34 , AVR_NUM_REGS = 32 + 1 + 1 + 1 , AVR_NUM_REG_BYTES = 32 + 1 + 2 + 4 , AVR_PSEUDO_PC_REGNUM = 35 , AVR_NUM_PSEUDO_REGS = 1 , AVR_PC_REG_INDEX = 35 , AVR_MAX_PROLOGUE_SIZE = 64 , AVR_MAX_PUSHES = 18 , AVR_LAST_PUSHED_REGNUM = 17 , AVR_ARG1_REGNUM = 24 , AVR_ARGN_REGNUM = 25 , AVR_LAST_ARG_REGNUM = 8 , AVR_RET1_REGNUM = 24 , AVR_RETN_REGNUM = 25 , AVR_IMEM_START = 0x00000000 , AVR_SMEM_START = 0x00800000 , AVR_MEM_MASK = 0x00f00000 } |
enum | { AVR_PROLOGUE_NONE , AVR_PROLOGUE_NORMAL , AVR_PROLOGUE_CALL , AVR_PROLOGUE_MAIN , AVR_PROLOGUE_INTR , AVR_PROLOGUE_SIG } |
Functions | |
static const char * | avr_register_name (struct gdbarch *gdbarch, int regnum) |
static struct type * | avr_register_type (struct gdbarch *gdbarch, int reg_nr) |
static CORE_ADDR | avr_make_iaddr (CORE_ADDR x) |
static CORE_ADDR | avr_convert_iaddr_to_raw (CORE_ADDR x) |
static CORE_ADDR | avr_make_saddr (CORE_ADDR x) |
static CORE_ADDR | avr_convert_saddr_to_raw (CORE_ADDR x) |
static void | avr_address_to_pointer (struct gdbarch *gdbarch, struct type *type, gdb_byte *buf, CORE_ADDR addr) |
static CORE_ADDR | avr_pointer_to_address (struct gdbarch *gdbarch, struct type *type, const gdb_byte *buf) |
static CORE_ADDR | avr_integer_to_address (struct gdbarch *gdbarch, struct type *type, const gdb_byte *buf) |
static CORE_ADDR | avr_read_pc (readable_regcache *regcache) |
static void | avr_write_pc (struct regcache *regcache, CORE_ADDR val) |
static enum register_status | avr_pseudo_register_read (struct gdbarch *gdbarch, readable_regcache *regcache, int regnum, gdb_byte *buf) |
static void | avr_pseudo_register_write (struct gdbarch *gdbarch, struct regcache *regcache, int regnum, const gdb_byte *buf) |
static CORE_ADDR | avr_scan_prologue (struct gdbarch *gdbarch, CORE_ADDR pc_beg, CORE_ADDR pc_end, struct avr_unwind_cache *info) |
static CORE_ADDR | avr_skip_prologue (struct gdbarch *gdbarch, CORE_ADDR pc) |
typedef | BP_MANIPULATION (avr_break_insn) |
static struct avr_unwind_cache * | avr_frame_unwind_cache (frame_info_ptr this_frame, void **this_prologue_cache) |
static CORE_ADDR | avr_unwind_pc (struct gdbarch *gdbarch, frame_info_ptr next_frame) |
static CORE_ADDR | avr_unwind_sp (struct gdbarch *gdbarch, frame_info_ptr next_frame) |
static void | avr_frame_this_id (frame_info_ptr this_frame, void **this_prologue_cache, struct frame_id *this_id) |
static struct value * | avr_frame_prev_register (frame_info_ptr this_frame, void **this_prologue_cache, int regnum) |
static CORE_ADDR | avr_frame_base_address (frame_info_ptr this_frame, void **this_cache) |
static struct frame_id | avr_dummy_id (struct gdbarch *gdbarch, frame_info_ptr this_frame) |
static struct avr_stack_item * | push_stack_item (struct avr_stack_item *prev, const bfd_byte *contents, int len) |
static struct avr_stack_item * | pop_stack_item (struct avr_stack_item *si) |
static CORE_ADDR | avr_push_dummy_call (struct gdbarch *gdbarch, struct value *function, struct regcache *regcache, CORE_ADDR bp_addr, int nargs, struct value **args, CORE_ADDR sp, function_call_return_method return_method, CORE_ADDR struct_addr) |
static int | avr_dwarf_reg_to_regnum (struct gdbarch *gdbarch, int reg) |
static type_instance_flags | avr_address_class_type_flags (int byte_size, int dwarf2_addr_class) |
static const char * | avr_address_class_type_flags_to_name (struct gdbarch *gdbarch, type_instance_flags type_flags) |
static bool | avr_address_class_name_to_type_flags (struct gdbarch *gdbarch, const char *name, type_instance_flags *type_flags_ptr) |
static struct gdbarch * | avr_gdbarch_init (struct gdbarch_info info, struct gdbarch_list *arches) |
static void | avr_io_reg_read_command (const char *args, int from_tty) |
void | _initialize_avr_tdep () |
Variables | |
constexpr gdb_byte | avr_break_insn [] = { 0x98, 0x95 } |
static const struct frame_unwind | avr_frame_unwind |
static const struct frame_base | avr_frame_base |
#define AVR_TYPE_ADDRESS_CLASS_FLASH TYPE_ADDRESS_CLASS_1 |
Definition at line 80 of file avr-tdep.c.
Referenced by avr_address_to_pointer(), and avr_pointer_to_address().
#define AVR_TYPE_INSTANCE_FLAG_ADDRESS_CLASS_FLASH TYPE_INSTANCE_FLAG_ADDRESS_CLASS_1 |
Definition at line 81 of file avr-tdep.c.
Referenced by avr_address_class_name_to_type_flags(), avr_address_class_type_flags(), and avr_address_class_type_flags_to_name().
anonymous enum |
Definition at line 85 of file avr-tdep.c.
anonymous enum |
Enumerator | |
---|---|
AVR_PROLOGUE_NONE | |
AVR_PROLOGUE_NORMAL | |
AVR_PROLOGUE_CALL | |
AVR_PROLOGUE_MAIN | |
AVR_PROLOGUE_INTR | |
AVR_PROLOGUE_SIG |
Definition at line 159 of file avr-tdep.c.
void _initialize_avr_tdep | ( | ) |
Definition at line 1632 of file avr-tdep.c.
References add_info(), avr_gdbarch_init(), avr_io_reg_read_command(), and gdbarch_register().
|
static |
Definition at line 1411 of file avr-tdep.c.
References AVR_TYPE_INSTANCE_FLAG_ADDRESS_CLASS_FLASH, and name.
Referenced by avr_gdbarch_init().
|
static |
Definition at line 1381 of file avr-tdep.c.
References AVR_TYPE_INSTANCE_FLAG_ADDRESS_CLASS_FLASH.
Referenced by avr_gdbarch_init().
|
static |
Definition at line 1397 of file avr-tdep.c.
References AVR_TYPE_INSTANCE_FLAG_ADDRESS_CLASS_FLASH.
Referenced by avr_gdbarch_init().
|
static |
Definition at line 307 of file avr-tdep.c.
References avr_convert_iaddr_to_raw(), avr_convert_saddr_to_raw(), AVR_TYPE_ADDRESS_CLASS_FLASH, type::code(), gdbarch_byte_order(), type::length(), store_unsigned_integer(), and type::target_type().
Referenced by avr_gdbarch_init().
|
static |
Definition at line 257 of file avr-tdep.c.
Referenced by avr_address_to_pointer(), avr_push_dummy_call(), and avr_write_pc().
|
static |
Definition at line 275 of file avr-tdep.c.
Referenced by avr_address_to_pointer(), and avr_push_dummy_call().
|
static |
Definition at line 1189 of file avr-tdep.c.
References avr_make_saddr(), AVR_SP_REGNUM, frame_id_build(), get_frame_pc(), and get_frame_register_unsigned().
Referenced by avr_gdbarch_init().
|
static |
Definition at line 1366 of file avr-tdep.c.
References AVR_SP_REGNUM.
Referenced by avr_gdbarch_init().
|
static |
Definition at line 1169 of file avr-tdep.c.
References avr_frame_unwind_cache().
|
static |
Definition at line 1110 of file avr-tdep.c.
References avr_frame_unwind_cache(), AVR_PC_REGNUM, AVR_PSEUDO_PC_REGNUM, avr_gdbarch_tdep::call_length, frame_unwind_got_constant(), frame_unwind_got_optimized(), get_frame_arch(), gdbarch::info(), read_memory(), regnum, and trad_frame_get_prev_register().
|
static |
Definition at line 1085 of file avr-tdep.c.
References avr_frame_unwind_cache(), avr_unwind_cache::base, frame_id_build(), func, and get_frame_func().
|
static |
Definition at line 982 of file avr-tdep.c.
References AVR_FP_REGNUM, avr_make_saddr(), AVR_PC_REGNUM, AVR_PROLOGUE_MAIN, AVR_PROLOGUE_NONE, avr_scan_prologue(), AVR_SP_REGNUM, avr_gdbarch_tdep::call_length, FRAME_OBSTACK_ZALLOC, gdbarch_num_regs(), get_frame_arch(), get_frame_func(), get_frame_pc(), get_frame_register_unsigned(), gdbarch::info(), avr_unwind_cache::prev_sp, and trad_frame_alloc_saved_regs().
Referenced by avr_frame_base_address(), avr_frame_prev_register(), and avr_frame_this_id().
|
static |
Definition at line 1427 of file avr-tdep.c.
References arches, avr_address_class_name_to_type_flags(), avr_address_class_type_flags(), avr_address_class_type_flags_to_name(), avr_address_to_pointer(), avr_dummy_id(), avr_dwarf_reg_to_regnum(), avr_frame_base, avr_frame_unwind, avr_integer_to_address(), AVR_NUM_PSEUDO_REGS, AVR_NUM_REGS, AVR_PC_REGNUM, avr_pointer_to_address(), avr_pseudo_register_read(), avr_pseudo_register_write(), avr_push_dummy_call(), avr_read_pc(), avr_register_name(), avr_register_type(), avr_skip_prologue(), AVR_SP_REGNUM, avr_unwind_pc(), avr_unwind_sp(), avr_write_pc(), avr_gdbarch_tdep::call_length, core_addr_lessthan(), floatformats_ieee_single, frame_base_set_default(), frame_unwind_append_unwinder(), avr_gdbarch_tdep::func_void_type, gdbarch_list::gdbarch, gdbarch_alloc(), gdbarch_list_lookup_by_info(), init_pointer_type(), make_function_type(), type_allocator::new_type(), gdbarch_list::next, avr_gdbarch_tdep::pc_type, set_gdbarch_addr_bit(), set_gdbarch_address_class_name_to_type_flags(), set_gdbarch_address_class_type_flags(), set_gdbarch_address_class_type_flags_to_name(), set_gdbarch_address_to_pointer(), set_gdbarch_breakpoint_kind_from_pc(), set_gdbarch_double_bit(), set_gdbarch_double_format(), set_gdbarch_dummy_id(), set_gdbarch_dwarf2_reg_to_regnum(), set_gdbarch_float_bit(), set_gdbarch_float_format(), set_gdbarch_inner_than(), set_gdbarch_int_bit(), set_gdbarch_integer_to_address(), set_gdbarch_long_bit(), set_gdbarch_long_double_bit(), set_gdbarch_long_double_format(), set_gdbarch_long_long_bit(), set_gdbarch_num_pseudo_regs(), set_gdbarch_num_regs(), set_gdbarch_pc_regnum(), set_gdbarch_pointer_to_address(), set_gdbarch_pseudo_register_read(), set_gdbarch_pseudo_register_write(), set_gdbarch_ptr_bit(), set_gdbarch_push_dummy_call(), set_gdbarch_read_pc(), set_gdbarch_register_name(), set_gdbarch_register_type(), set_gdbarch_return_value(), set_gdbarch_short_bit(), set_gdbarch_skip_prologue(), set_gdbarch_sp_regnum(), set_gdbarch_sw_breakpoint_from_kind(), set_gdbarch_unwind_pc(), set_gdbarch_unwind_sp(), set_gdbarch_wchar_bit(), set_gdbarch_wchar_signed(), set_gdbarch_write_pc(), and avr_gdbarch_tdep::void_type.
Referenced by _initialize_avr_tdep().
|
static |
Definition at line 364 of file avr-tdep.c.
References avr_make_iaddr(), avr_make_saddr(), TYPE_DATA_SPACE, and unpack_long().
Referenced by avr_gdbarch_init().
|
static |
Definition at line 1562 of file avr-tdep.c.
References current_inferior(), gdb_printf(), gdb_stderr, query(), TARGET_OBJECT_AVR, and target_read_alloc().
Referenced by _initialize_avr_tdep().
|
static |
Definition at line 246 of file avr-tdep.c.
References AVR_IMEM_START.
Referenced by avr_integer_to_address(), avr_pointer_to_address(), avr_read_pc(), and avr_unwind_pc().
|
static |
Definition at line 265 of file avr-tdep.c.
References AVR_SMEM_START.
Referenced by avr_dummy_id(), avr_frame_unwind_cache(), avr_integer_to_address(), avr_pointer_to_address(), and avr_unwind_sp().
|
static |
Definition at line 337 of file avr-tdep.c.
References avr_make_iaddr(), avr_make_saddr(), AVR_TYPE_ADDRESS_CLASS_FLASH, type::code(), extract_unsigned_integer(), gdbarch_byte_order(), type::length(), type::target_type(), and TYPE_CODE_SPACE.
Referenced by avr_gdbarch_init().
|
static |
Definition at line 392 of file avr-tdep.c.
References AVR_PC_REGNUM, AVR_PSEUDO_PC_REGNUM, gdbarch_byte_order(), readable_regcache::raw_read(), regnum, status, and store_unsigned_integer().
Referenced by avr_gdbarch_init().
|
static |
Definition at line 413 of file avr-tdep.c.
References AVR_PC_REGNUM, AVR_PSEUDO_PC_REGNUM, extract_unsigned_integer(), gdbarch_byte_order(), regcache_raw_write_unsigned(), and regnum.
Referenced by avr_gdbarch_init().
|
static |
Definition at line 1270 of file avr-tdep.c.
References AVR_ARGN_REGNUM, avr_convert_iaddr_to_raw(), avr_convert_saddr_to_raw(), AVR_LAST_ARG_REGNUM, AVR_SP_REGNUM, avr_gdbarch_tdep::call_length, check_typedef(), value::contents(), avr_stack_item::data, avr_stack_item::len, type::length(), pop_stack_item(), push_stack_item(), regcache_cooked_write_unsigned(), regnum, return_method_struct, value::type(), and write_memory().
Referenced by avr_gdbarch_init().
|
static |
Definition at line 376 of file avr-tdep.c.
References avr_make_iaddr(), AVR_PC_REGNUM, and readable_regcache::cooked_read().
Referenced by avr_gdbarch_init().
|
static |
Definition at line 209 of file avr-tdep.c.
References AVR_NUM_PSEUDO_REGS, AVR_NUM_REGS, gdb_static_assert(), and regnum.
Referenced by avr_gdbarch_init().
Definition at line 228 of file avr-tdep.c.
References AVR_PC_REGNUM, AVR_PSEUDO_PC_REGNUM, AVR_SP_REGNUM, builtin_type::builtin_data_ptr, builtin_type(), builtin_type::builtin_uint32, builtin_type::builtin_uint8, and avr_gdbarch_tdep::pc_type.
Referenced by avr_gdbarch_init().
|
static |
Definition at line 526 of file avr-tdep.c.
References AVR_FP_REGNUM, AVR_LAST_PUSHED_REGNUM, AVR_MAX_PROLOGUE_SIZE, AVR_MAX_PUSHES, AVR_PROLOGUE_CALL, AVR_PROLOGUE_INTR, AVR_PROLOGUE_MAIN, AVR_PROLOGUE_NORMAL, AVR_PROLOGUE_SIG, AVR_SREG_REGNUM, avr_gdbarch_tdep::call_length, extract_unsigned_integer(), gdb_printf(), gdb_stderr, gdbarch_byte_order(), locals, lookup_minimal_symbol(), bound_minimal_symbol::minsym, read_memory(), and bound_minimal_symbol::value_address().
Referenced by avr_frame_unwind_cache(), and avr_skip_prologue().
|
static |
Definition at line 881 of file avr-tdep.c.
References AVR_NUM_REGS, AVR_PROLOGUE_NONE, avr_scan_prologue(), find_pc_partial_function(), avr_unwind_cache::saved_regs, and skip_prologue_using_sal().
Referenced by avr_gdbarch_init().
|
static |
Definition at line 1062 of file avr-tdep.c.
References avr_make_iaddr(), AVR_PC_REGNUM, and frame_unwind_register_unsigned().
Referenced by avr_gdbarch_init().
|
static |
Definition at line 1072 of file avr-tdep.c.
References avr_make_saddr(), AVR_SP_REGNUM, and frame_unwind_register_unsigned().
Referenced by avr_gdbarch_init().
|
static |
Definition at line 385 of file avr-tdep.c.
References avr_convert_iaddr_to_raw(), AVR_PC_REGNUM, and regcache_cooked_write_unsigned().
Referenced by avr_gdbarch_init().
typedef BP_MANIPULATION | ( | avr_break_insn | ) |
Definition at line 925 of file avr-tdep.c.
References type::code(), readable_regcache::cooked_read(), regcache::cooked_write(), type::length(), RETURN_VALUE_REGISTER_CONVENTION, and RETURN_VALUE_STRUCT_CONVENTION.
|
static |
Definition at line 1221 of file avr-tdep.c.
References avr_stack_item::data, avr_stack_item::prev, and xfree().
Referenced by avr_push_dummy_call().
|
static |
Definition at line 1208 of file avr-tdep.c.
References avr_stack_item::data, avr_stack_item::len, avr_stack_item::prev, and xmalloc().
Referenced by avr_push_dummy_call().
|
constexpr |
Definition at line 923 of file avr-tdep.c.
|
static |
Definition at line 1177 of file avr-tdep.c.
Referenced by avr_gdbarch_init().
|
static |
Definition at line 1158 of file avr-tdep.c.
Referenced by avr_gdbarch_init().