This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: further improve "handle" help string


On 08/23/2012 06:18 PM, Mike Frysinger wrote:
> On Thursday 23 August 2012 12:26:32 Pedro Alves wrote:
>> Multiple signals may be specified.  Signal numbers and signal names
>> may be interspersed with actions, with the actions being performed for
>> all signals cumulatively specified.
> 
> this doesn't accurately describe real world behavior (but maybe that's a 
> bug?).  this is why i avoided that aspect in the first place :(.

> for example:
> (gdb) handle SIGHUP SIGUSR1 SIGUSR2 SIGPWR
> Signal        Stop      Print   Pass to program Description
> SIGHUP        Yes       Yes     Yes             Hangup
> SIGUSR1       Yes       Yes     Yes             User defined signal 1
> SIGUSR2       Yes       Yes     Yes             User defined signal 2
> SIGPWR        Yes       Yes     Yes             Power fail/restart
> (gdb) handle SIGHUP SIGUSR1 SIGUSR2 nostop SIGPWR
> Signal        Stop      Print   Pass to program Description
> SIGHUP        No        Yes     Yes             Hangup
> SIGUSR1       No        Yes     Yes             User defined signal 1
> SIGUSR2       No        Yes     Yes             User defined signal 2
> SIGPWR        Yes       Yes     Yes             Power fail/restart
> (gdb) handle SIGPWR
> Signal        Stop      Print   Pass to program Description
> SIGPWR        Yes       Yes     Yes             Power fail/restart
> (gdb) handle SIGHUP SIGUSR1 SIGUSR2 SIGPWR nostop
> Signal        Stop      Print   Pass to program Description
> SIGHUP        No        Yes     Yes             Hangup
> SIGUSR1       No        Yes     Yes             User defined signal 1
> SIGUSR2       No        Yes     Yes             User defined signal 2
> SIGPWR        No        Yes     Yes             Power fail/restart
> 
> so saying "all signals cumulatively" is not how the code is behaving.

I had interpreted "cumulatively" as what the code is doing.  As in,
"all signals specified so far, when the action is parsed".  That's what
we see above.  Another e.g.,

(gdb) handle SIGHUP SIGUSR1 noprint SIGUSR2 SIGPWR nopass
Signal        Stop      Print   Pass to program Description
SIGHUP        No        No      No              Hangup
SIGUSR1       No        No      No              User defined signal 1
SIGUSR2       Yes       Yes     No              User defined signal 2
SIGPWR        Yes       Yes     No              Power fail/restart

IOW, I interpreted it as "noprint" (implies nostop) applying to all signals
accumulated that far (SIGHUP, SIGUSR1), and then "nopass" applying to
all accumulated signals at the end (all 4).

Consequently, this:

(gdb) handle SIGHUP SIGUSR1 pass SIGUSR2 SIGPWR nopass

Sets all signals to "nopass".

I don't frequently intersperse.  Rather, I do things like:

  handle SIGTRAP SIG34 SIG35 pass nostop noprint

I have already applied the patch, but if we want to change the
behavior, or the text, that's fine with me.

-- 
Pedro Alves


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]