Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: David Daney <ddaney@avtrex.com>
To: Daniel Jacobowitz <drow@false.org>
Cc: gdb@sourceware.org
Subject: Re: [rfc/remote] Tell remote stubs which signals are boring
Date: Wed, 25 Oct 2006 22:56:00 -0000	[thread overview]
Message-ID: <453FEB98.8090202@avtrex.com> (raw)
In-Reply-To: <20061025212441.GA622@nevyn.them.org>

Daniel Jacobowitz wrote:
> Some time ago, I got a bug report that gdbserver couldn't be used to
> debug a program.  You'd tell it to "continue", and it wouldn't - it
> would just spin in place.
> 
> We realized eventually that the problem was SIGALRM.  There was a tiny
> signal handler running every timer tick (at about 100Hz, if I remember
> right).  That's plenty of time for native GDB to notice, resume, and
> let the code run.  But if you have to stop the program, including any
> threads, and send a packet over a socket to another machine, only to
> have GDB tell you that you're not interested in it anyway, then you
> never make any progress.  By the time the program returns from its
> signal handler, SIGALRM is pending again.
> 
> This is the solution I came up with for that problem, adjusted to HEAD
> and given a more sensible packet name.  I have a tested implementation
> of this patch for HEAD, if my remote protocol choices are acceptable.
> The new mechanism is completely transparent to the user.
> 
> All comments welcome!
> 
> `QPassSignals SIGNAL [;SIGNAL]...'
>      Each listed SIGNAL, using the same signal numbering used in
>      continue packets and stop responses, should be passed directly to
>      the inferior process.  Each SIGNAL list item should be strictly
>      greater than the previous item.  These signals do not need to stop
>      the inferior, or be reported to GDB.  All other signals should be
>      reported to GDB.  Multiple `QPassSignals' packets do not combine;
>      any earlier `QPassSignals' list is completely replaced by the new
>      list.  This packet improves performance when using `handle SIGNAL
>      nostop noprint pass'.
> 
>      Reply:
>     `OK'
>           The request succeeded.
> 
>     `E NN'
>           An error occurred.  NN are hex digits.
> 
>     `'
>           An empty reply indicates that `QPassSignals' is not supported
>           by the stub.
> 
>      Use of this packet is controlled by the `set remote pass-signals'
>      command (*note set remote pass-signals: Remote configuration.).
>      This packet is not probed by default; the remote stub must request
>      it, by supplying an appropriate `qSupported' response (*note
>      qSupported::).

Does this mean that you have to issue a 'set remote pass-signals' 
command, or is it done automatically for 'handle noprint nostop pass' if 
the remote stub supports it?

Not being that familiar with the remote protocol, it is unclear to me.

David Daney


  parent reply	other threads:[~2006-10-25 22:56 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-10-25 21:24 Daniel Jacobowitz
2006-10-25 21:33 ` Mark Kettenis
2006-10-25 22:56 ` David Daney [this message]
2006-10-26  1:40   ` Daniel Jacobowitz
2006-10-26  7:02     ` Eli Zaretskii
2006-10-26  6:57 ` Eli Zaretskii
2006-10-26 12:18   ` Daniel Jacobowitz
2006-10-26 15:01     ` Eli Zaretskii
2006-10-26 15:10       ` Daniel Jacobowitz
2006-10-26 15:18         ` Eli Zaretskii
2006-10-26 15:22           ` Daniel Jacobowitz
2006-10-26 15:27     ` Mark Kettenis
2006-10-26 15:37       ` Daniel Jacobowitz
2006-10-26 17:54         ` Mark Kettenis
2006-10-26 21:11 ` Jim Blandy
2006-10-26 21:16   ` Daniel Jacobowitz
2006-10-26 21:28     ` Jim Blandy
2006-10-26 21: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=453FEB98.8090202@avtrex.com \
    --to=ddaney@avtrex.com \
    --cc=drow@false.org \
    --cc=gdb@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