diff options
Diffstat (limited to 'gdb/cris-tdep.c')
-rw-r--r-- | gdb/cris-tdep.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/gdb/cris-tdep.c b/gdb/cris-tdep.c index 1a2641b..460e7eb 100644 --- a/gdb/cris-tdep.c +++ b/gdb/cris-tdep.c @@ -2060,12 +2060,12 @@ find_step_target (struct frame_info *frame, inst_env_type *inst_env) digs through the opcodes in order to find all possible targets. Either one ordinary target or two targets for branches may be found. */ -static int +static VEC (CORE_ADDR) * cris_software_single_step (struct frame_info *frame) { struct gdbarch *gdbarch = get_frame_arch (frame); - struct address_space *aspace = get_frame_address_space (frame); inst_env_type inst_env; + VEC (CORE_ADDR) *next_pcs = NULL; /* Analyse the present instruction environment and insert breakpoints. */ @@ -2082,18 +2082,19 @@ cris_software_single_step (struct frame_info *frame) and possibly another one for a branch, jump, etc. */ CORE_ADDR next_pc = (CORE_ADDR) inst_env.reg[gdbarch_pc_regnum (gdbarch)]; - insert_single_step_breakpoint (gdbarch, aspace, next_pc); + + VEC_safe_push (CORE_ADDR, next_pcs, next_pc); if (inst_env.branch_found && (CORE_ADDR) inst_env.branch_break_address != next_pc) { CORE_ADDR branch_target_address = (CORE_ADDR) inst_env.branch_break_address; - insert_single_step_breakpoint (gdbarch, - aspace, branch_target_address); + + VEC_safe_push (CORE_ADDR, next_pcs, branch_target_address); } } - return 1; + return next_pcs; } /* Calculates the prefix value for quick offset addressing mode. */ |