58#define BPF_NUM_REGS (BPF_PC_REGNUM + 1)
87 "r0",
"r1",
"r2",
"r3",
"r4",
"r5",
"r6",
"r7",
88 "r8",
"r9",
"r10",
"pc"
127 info->symbols = NULL;
139 "Skipping prologue: start_pc=%s\n",
158 void **this_prologue_cache,
171 return UNWIND_OUTERMOST;
178 void **this_prologue_cache,
int regnum)
218static const gdb_byte *
221 static unsigned char brkpt_insn[]
222 = {0x8c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00};
230 gdb_assert_not_reached (
"unexpected BPF breakpoint kind");
250 int nargs,
struct value **args, CORE_ADDR sp,
252 CORE_ADDR struct_addr)
270 gdb_assert (len <= 8);
272 memcpy (valbuf, vbuf + 8 - len, len);
279 const gdb_byte *valbuf)
284 gdb_assert (len <= 8);
285 memset (vbuf, 0,
sizeof (vbuf));
286 memcpy (vbuf + 8 - len, valbuf, len);
295 gdb_byte *readbuf,
const gdb_byte *writebuf)
304 if (writebuf != NULL)
381 _(
"Set BPF debugging."),
382 _(
"Show BPF debugging."),
383 _(
"Enables BPF specific debugging output."),
gdb_static_assert(sizeof(splay_tree_key) >=sizeof(CORE_ADDR *))
void gdbarch_register(enum bfd_architecture bfd_architecture, gdbarch_init_ftype *init, gdbarch_dump_tdep_ftype *dump_tdep, gdbarch_supports_arch_info_ftype *supports_arch_info)
int default_print_insn(bfd_vma memaddr, disassemble_info *info)
static std::vector< const char * > arches
int core_addr_lessthan(CORE_ADDR lhs, CORE_ADDR rhs)
struct gdbarch_list * gdbarch_list_lookup_by_info(struct gdbarch_list *arches, const struct gdbarch_info *info)
static enum return_value_convention bpf_return_value(struct gdbarch *gdbarch, struct value *function, struct type *type, struct regcache *regcache, gdb_byte *readbuf, const gdb_byte *writebuf)
static struct frame_id bpf_dummy_id(struct gdbarch *gdbarch, frame_info_ptr this_frame)
static void show_bpf_debug(struct ui_file *file, int from_tty, struct cmd_list_element *c, const char *value)
static enum unwind_stop_reason bpf_frame_unwind_stop_reason(frame_info_ptr this_frame, void **this_cache)
static int bpf_breakpoint_kind_from_pc(struct gdbarch *gdbarch, CORE_ADDR *start_pc)
void _initialize_bpf_tdep()
static void bpf_frame_this_id(frame_info_ptr this_frame, void **this_prologue_cache, struct frame_id *this_id)
static CORE_ADDR bpf_skip_prologue(struct gdbarch *gdbarch, CORE_ADDR start_pc)
static int bpf_dwarf2_reg_to_regnum(struct gdbarch *gdbarch, int reg)
static const gdb_byte * bpf_sw_breakpoint_from_kind(struct gdbarch *gdbarch, int kind, int *size)
static unsigned int bpf_debug_flag
static const char * bpf_register_name(struct gdbarch *gdbarch, int reg)
static void bpf_extract_return_value(struct type *type, struct regcache *regcache, gdb_byte *valbuf)
static CORE_ADDR bpf_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 struct gdbarch * bpf_gdbarch_init(struct gdbarch_info info, struct gdbarch_list *arches)
static struct type * bpf_register_type(struct gdbarch *gdbarch, int reg)
static int bpf_gdb_print_insn(bfd_vma memaddr, disassemble_info *info)
static const struct frame_unwind bpf_frame_unwind
static void bpf_store_return_value(struct type *type, struct regcache *regcache, const gdb_byte *valbuf)
static struct value * bpf_frame_prev_register(frame_info_ptr this_frame, void **this_prologue_cache, int regnum)
static const char * bpf_register_names[]
enum register_status cooked_read(int regnum, gdb_byte *buf)
void cooked_write(int regnum, const gdb_byte *buf)
struct cmd_list_element * showdebuglist
struct cmd_list_element * setdebuglist
set_show_commands add_setshow_zuinteger_cmd(const char *name, enum command_class theclass, unsigned int *var, const char *set_doc, const char *show_doc, const char *help_doc, cmd_func_ftype *set_func, show_value_ftype *show_func, struct cmd_list_element **set_list, struct cmd_list_element **show_list)
@ RETURN_VALUE_REGISTER_CONVENTION
@ RETURN_VALUE_STRUCT_CONVENTION
int default_frame_sniffer(const struct frame_unwind *self, frame_info_ptr this_frame, void **this_prologue_cache)
struct value * frame_unwind_got_register(frame_info_ptr frame, int regnum, int new_regnum)
void frame_unwind_append_unwinder(struct gdbarch *gdbarch, const struct frame_unwind *unwinder)
ULONGEST get_frame_register_unsigned(frame_info_ptr frame, int regnum)
CORE_ADDR get_frame_pc(frame_info_ptr frame)
struct frame_id frame_id_build(CORE_ADDR stack_addr, CORE_ADDR code_addr)
void set_gdbarch_breakpoint_kind_from_pc(struct gdbarch *gdbarch, gdbarch_breakpoint_kind_from_pc_ftype *breakpoint_kind_from_pc)
void set_gdbarch_skip_prologue(struct gdbarch *gdbarch, gdbarch_skip_prologue_ftype *skip_prologue)
void set_gdbarch_register_name(struct gdbarch *gdbarch, gdbarch_register_name_ftype *register_name)
void set_gdbarch_return_value(struct gdbarch *gdbarch, gdbarch_return_value_ftype *return_value)
void set_gdbarch_inner_than(struct gdbarch *gdbarch, gdbarch_inner_than_ftype *inner_than)
void set_gdbarch_sp_regnum(struct gdbarch *gdbarch, int sp_regnum)
int gdbarch_sp_regnum(struct gdbarch *gdbarch)
void set_gdbarch_pc_regnum(struct gdbarch *gdbarch, int pc_regnum)
void set_gdbarch_call_dummy_location(struct gdbarch *gdbarch, enum call_dummy_location_type call_dummy_location)
void set_gdbarch_register_type(struct gdbarch *gdbarch, gdbarch_register_type_ftype *register_type)
void set_gdbarch_print_insn(struct gdbarch *gdbarch, gdbarch_print_insn_ftype *print_insn)
void set_gdbarch_dwarf2_reg_to_regnum(struct gdbarch *gdbarch, gdbarch_dwarf2_reg_to_regnum_ftype *dwarf2_reg_to_regnum)
void set_gdbarch_num_regs(struct gdbarch *gdbarch, int num_regs)
void set_gdbarch_sw_breakpoint_from_kind(struct gdbarch *gdbarch, gdbarch_sw_breakpoint_from_kind_ftype *sw_breakpoint_from_kind)
void set_gdbarch_dummy_id(struct gdbarch *gdbarch, gdbarch_dummy_id_ftype *dummy_id)
void set_gdbarch_push_dummy_call(struct gdbarch *gdbarch, gdbarch_push_dummy_call_ftype *push_dummy_call)
void set_gdbarch_frame_args_skip(struct gdbarch *gdbarch, CORE_ADDR frame_args_skip)
struct gdbarch * gdbarch_alloc(const struct gdbarch_info *info, gdbarch_tdep_up tdep)
std::unique_ptr< gdbarch_tdep_base > gdbarch_tdep_up
function_call_return_method
const struct builtin_type * builtin_type(struct gdbarch *gdbarch)
void gdbarch_init_osabi(struct gdbarch_info info, struct gdbarch *gdbarch)
struct type * builtin_func_ptr
struct type * builtin_data_ptr
struct type * builtin_int64
const char * paddress(struct gdbarch *gdbarch, CORE_ADDR addr)
void gdb_printf(struct ui_file *stream, const char *format,...)