diff options
Diffstat (limited to 'gdb/gdbserver/linux-low.c')
-rw-r--r-- | gdb/gdbserver/linux-low.c | 9 |
1 files changed, 2 insertions, 7 deletions
diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c index e27cbf8..ea3c81b 100644 --- a/gdb/gdbserver/linux-low.c +++ b/gdb/gdbserver/linux-low.c @@ -4317,19 +4317,14 @@ enqueue_pending_signal (struct lwp_info *lwp, int signal, siginfo_t *info) static void install_software_single_step_breakpoints (struct lwp_info *lwp) { - int i; - CORE_ADDR pc; struct thread_info *thread = get_lwp_thread (lwp); struct regcache *regcache = get_thread_regcache (thread, 1); - VEC (CORE_ADDR) *next_pcs = NULL; struct cleanup *old_chain = make_cleanup_restore_current_thread (); - make_cleanup (VEC_cleanup (CORE_ADDR), &next_pcs); - current_thread = thread; - next_pcs = (*the_low_target.get_next_pcs) (regcache); + std::vector<CORE_ADDR> next_pcs = the_low_target.get_next_pcs (regcache); - for (i = 0; VEC_iterate (CORE_ADDR, next_pcs, i, pc); ++i) + for (CORE_ADDR pc : next_pcs) set_single_step_breakpoint (pc, current_ptid); do_cleanups (old_chain); |