X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=gdbserver%2Flinux-bfin-low.cc;h=5f0d72fed74383f753314a7fb0064c1fe260e029;hb=b35db73327cf54445a20533305fcf705e88a520b;hp=17948ed16f009c504836ba88cd7e05013b3f999a;hpb=7582c77c1d2cab3f53b70697529c1644ceeb94a2;p=deliverable%2Fbinutils-gdb.git diff --git a/gdbserver/linux-bfin-low.cc b/gdbserver/linux-bfin-low.cc index 17948ed16f..5f0d72fed7 100644 --- a/gdbserver/linux-bfin-low.cc +++ b/gdbserver/linux-bfin-low.cc @@ -46,6 +46,10 @@ protected: CORE_ADDR low_get_pc (regcache *regcache) override; void low_set_pc (regcache *regcache, CORE_ADDR newpc) override; + + int low_decr_pc_after_break () override; + + bool low_breakpoint_at (CORE_ADDR pc) override; }; /* The singleton target ops object. */ @@ -70,6 +74,12 @@ bfin_target::low_set_pc (regcache *regcache, CORE_ADDR pc) linux_set_pc_32bit (regcache, pc); } +int +bfin_target::low_decr_pc_after_break () +{ + return 2; +} + /* Defined in auto-generated file reg-bfin.c. */ void init_registers_bfin (void); extern const struct target_desc *tdesc_bfin; @@ -113,19 +123,19 @@ bfin_target::sw_breakpoint_from_kind (int kind, int *size) return bfin_breakpoint; } -static int -bfin_breakpoint_at (CORE_ADDR where) +bool +bfin_target::low_breakpoint_at (CORE_ADDR where) { unsigned char insn[bfin_breakpoint_len]; read_inferior_memory(where, insn, bfin_breakpoint_len); if (insn[0] == bfin_breakpoint[0] && insn[1] == bfin_breakpoint[1]) - return 1; + return true; /* If necessary, recognize more trap instructions here. GDB only uses the one. */ - return 0; + return false; } void @@ -161,15 +171,6 @@ bfin_target::get_regs_info () } struct linux_target_ops the_low_target = { - 2, - bfin_breakpoint_at, - NULL, /* supports_z_point_type */ - NULL, /* insert_point */ - NULL, /* remove_point */ - NULL, /* stopped_by_watchpoint */ - NULL, /* stopped_data_address */ - NULL, /* collect_ptrace_register */ - NULL, /* supply_ptrace_register */ NULL, /* siginfo_fixup */ NULL, /* new_process */ NULL, /* delete_process */