Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Pedro Alves <pedro@codesourcery.com>
To: gdb-patches@sourceware.org
Cc: Daniel Jacobowitz <drow@false.org>
Subject: Re: [gdbserver] Fix attaching notices
Date: Tue, 08 Jul 2008 01:59:00 -0000	[thread overview]
Message-ID: <200807080258.34187.pedro@codesourcery.com> (raw)
In-Reply-To: <200807080051.46088.pedro@codesourcery.com>

A Tuesday 08 July 2008 00:51:45, Pedro Alves wrote:

> You're right, I just tried with 6.8 too, and don't see the SIGTRAP
> notice...  I'll try to pinpoint what changed this, and see if it
> was a spurious change.
>

Unsurprisingly,

> 2008-05-01  Daniel Jacobowitz  <dan@codesourcery.com>
> 	    Pedro Alves  <pedro@codesourcery.com>
> 
> 	Based on work by Jan Kratochvil <jan.kratochvil@redhat.com> and Jeff
>  	Johnston <jjohnstn@redhat.com>.
> 
> 	* NEWS: Mention attach to stopped process fix.
> 	* infcmd.c (detach_command, disconnect_command): Discard the thread
> 	list.

> 	* infrun.c (handle_inferior_event): Do not ignore non-SIGSTOP while
> 	attaching.  Use signal_stop_state.

        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

> 	(signal_stop_state): Check stop_soon.
> 	* linux-nat.c (kill_lwp): Declare earlier.
> 	(pid_is_stopped, linux_nat_post_attach_wait): New.
> 	(lin_lwp_attach_lwp): Use linux_nat_post_attach_wait.  Update
> 	comments.
> 	(linux_nat_attach): Use linux_nat_post_attach_wait.
> 	(detach_callback, linux_nat_detach): Improve handling for signalled
> 	processes.
> 	(linux_nat_pid_to_str): Always print out the LWP ID if it differs
> 	from the process ID.
> 	* Makefile.in (infcmd.o): Update.


Before,

    /* This originates from attach_command().  We need to overwrite
         the stop_signal here, because some kernels don't ignore a
         SIGSTOP in a subsequent ptrace(PTRACE_SONT,SOGSTOP) call.
         See more comments in inferior.h.  */
      if (stop_soon == STOP_QUIETLY_NO_SIGSTOP)
	{
	  stop_stepping (ecs);
	  if (stop_signal == TARGET_SIGNAL_STOP)
	    stop_signal = TARGET_SIGNAL_0;
	  return;
	}

After,

      /* This originates from attach_command().  We need to overwrite
         the stop_signal here, because some kernels don't ignore a
         SIGSTOP in a subsequent ptrace(PTRACE_CONT,SIGSTOP) call.
         See more comments in inferior.h.  On the other hand, if we
	 get a non-SIGSTOP, report it to the user - assume the backend
	 will handle the SIGSTOP if it should show up later.  */
      if (stop_soon == STOP_QUIETLY_NO_SIGSTOP
	  && stop_signal == TARGET_SIGNAL_STOP)
	{
	  stop_stepping (ecs);
	  stop_signal = TARGET_SIGNAL_0;
	  return;
	}

Since gdbserver is reporting a TARGET_SIGNAL_TRAP, this now doesn't
match, and we go on handling the event until we decide it was a 
random signal.

So, we either

1) go with my patch (on which the win32 part was a hack, but I
   can live with it), and live with the bogus notice
against older gdbservers, or

2) change the test to:

      if (stop_soon == STOP_QUIETLY_NO_SIGSTOP
	  && stop_signal == TARGET_SIGNAL_STOP
	  && stop_signal == TARGET_SIGNAL_TRAP)
	{
	  stop_stepping (ecs);
	  stop_signal = TARGET_SIGNAL_0;
	  return;
	}

   Or even add a `&& stop_signal == TARGET_SIGNAL_0', and merge
   this stop_soon with STOP_QUIETLY_REMOTE.

3) other?

-- 
Pedro Alves


  reply	other threads:[~2008-07-08  1:59 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-06-27 23:26 Pedro Alves
2008-07-07 17:55 ` Daniel Jacobowitz
2008-07-07 23:52   ` Pedro Alves
2008-07-08  1:59     ` Pedro Alves [this message]
2008-07-11 14:13       ` Daniel Jacobowitz
2008-07-11 17:12         ` Pedro Alves
2008-07-11 17:37           ` Daniel Jacobowitz

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=200807080258.34187.pedro@codesourcery.com \
    --to=pedro@codesourcery.com \
    --cc=drow@false.org \
    --cc=gdb-patches@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox