normal_stop: Extend and clarify comment.

Explain better why we skip saying "Switching to ..." in non-stop mode.

gdb/
2014-03-21  Pedro Alves  <palves@redhat.com>

	* infrun.c (normal_stop): Extend comment.
This commit is contained in:
Pedro Alves 2014-03-21 11:08:44 +00:00
parent 36cb1214c9
commit b65dc60b23
2 changed files with 14 additions and 6 deletions

View File

@ -1,3 +1,7 @@
2014-03-21 Pedro Alves <palves@redhat.com>
* infrun.c (normal_stop): Extend comment.
2014-03-21 Hui Zhu <hui@codesourcery.com>
Pedro Alves <palves@redhat.com>

View File

@ -6059,18 +6059,22 @@ normal_stop (void)
&& last.kind != TARGET_WAITKIND_NO_RESUMED)
make_cleanup (finish_thread_state_cleanup, &inferior_ptid);
/* In non-stop mode, we don't want GDB to switch threads behind the
user's back, to avoid races where the user is typing a command to
apply to thread x, but GDB switches to thread y before the user
finishes entering the command. */
/* As with the notification of thread events, we want to delay
notifying the user that we've switched thread context until
the inferior actually stops.
There's no point in saying anything if the inferior has exited.
Note that SIGNALLED here means "exited with a signal", not
"received a signal". */
"received a signal".
Also skip saying anything in non-stop mode. In that mode, as we
don't want GDB to switch threads behind the user's back, to avoid
races where the user is typing a command to apply to thread x,
but GDB switches to thread y before the user finishes entering
the command, fetch_inferior_event installs a cleanup to restore
the current thread back to the thread the user had selected right
after this event is handled, so we're not really switching, only
informing of a stop. */
if (!non_stop
&& !ptid_equal (previous_inferior_ptid, inferior_ptid)
&& target_has_execution