* remote.c (extended_remote_mourn_1): Invalidate our notion of
current general thread.
This commit is contained in:
parent
244bf9aeb1
commit
dc1981d769
2 changed files with 30 additions and 0 deletions
|
@ -1,3 +1,8 @@
|
|||
2009-01-14 Pedro Alves <pedro@codesourcery.com>
|
||||
|
||||
* remote.c (extended_remote_mourn_1): Invalidate our notion of
|
||||
current general thread.
|
||||
|
||||
2009-01-14 Pedro Alves <pedro@codesourcery.com>
|
||||
|
||||
* mi/mi-main.c (mi_cmd_execute): Also allow -list-thread-groups
|
||||
|
|
25
gdb/remote.c
25
gdb/remote.c
|
@ -6548,6 +6548,31 @@ extended_remote_mourn_1 (struct target_ops *target)
|
|||
/* We're no longer interested in these events. */
|
||||
discard_pending_stop_replies (ptid_get_pid (inferior_ptid));
|
||||
|
||||
/* If the current general thread belonged to the process we just
|
||||
detached from or has exited, the remote side current general
|
||||
thread becomes undefined. Considering a case like this:
|
||||
|
||||
- We just got here due to a detach.
|
||||
- The process that we're detaching from happens to immediately
|
||||
report a global breakpoint being hit in non-stop mode, in the
|
||||
same thread we had selected before.
|
||||
- GDB attaches to this process again.
|
||||
- This event happens to be the next event we handle.
|
||||
|
||||
GDB would consider that the current general thread didn't need to
|
||||
be set on the stub side (with Hg), since for all it knew,
|
||||
GENERAL_THREAD hadn't changed.
|
||||
|
||||
Notice that although in all-stop mode, the remote server always
|
||||
sets the current thread to the thread reporting the stop event,
|
||||
that doesn't happen in non-stop mode; in non-stop, the stub *must
|
||||
not* change the current thread when reporting a breakpoint hit,
|
||||
due to the decoupling of event reporting and event handling.
|
||||
|
||||
To keep things simple, we always invalidate our notion of the
|
||||
current thread. */
|
||||
record_currthread (minus_one_ptid);
|
||||
|
||||
/* Unlike "target remote", we do not want to unpush the target; then
|
||||
the next time the user says "run", we won't be connected. */
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue