diff options
Diffstat (limited to 'gdb/gdbserver/linux-low.c')
-rw-r--r-- | gdb/gdbserver/linux-low.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/gdb/gdbserver/linux-low.c b/gdb/gdbserver/linux-low.c index 2146a2c..792c178 100644 --- a/gdb/gdbserver/linux-low.c +++ b/gdb/gdbserver/linux-low.c @@ -3664,6 +3664,7 @@ static void move_out_of_jump_pad_callback (struct inferior_list_entry *entry) { struct thread_info *thread = (struct thread_info *) entry; + struct thread_info *saved_thread; struct lwp_info *lwp = get_thread_lwp (thread); int *wstat; @@ -3675,6 +3676,10 @@ move_out_of_jump_pad_callback (struct inferior_list_entry *entry) } gdb_assert (lwp->stopped); + /* For gdb_breakpoint_here. */ + saved_thread = current_thread; + current_thread = thread; + wstat = lwp->status_pending_p ? &lwp->status_pending : NULL; /* Allow debugging the jump pad, gdb_collect, etc. */ @@ -3702,6 +3707,8 @@ move_out_of_jump_pad_callback (struct inferior_list_entry *entry) } else lwp_suspended_inc (lwp); + + current_thread = saved_thread; } static int |