On Fri, 12 May 2000, Mark Kettenis wrote:

>    Date: Thu, 11 May 2000 22:18:53 +0200 (CEST)
>    From: Robert de Vries <[EMAIL PROTECTED]>
> 
>    What I observe when I run a test program with a timer sending SIG33
>    (SIGRTMIN+1), is that after the signal has been passed through gdb it is
>    transformed to SIGRTMIN.
>    I configured gdb as follows:
>    handle SIG33 pass print nostop
> 
>    And the result is:
> 
> 
>    Program received signal SIG33, Real-time event 33.
>    1.000385000: siginfo dump: si_signo: 32 [32], si_errno: 0,
>    si_value: int=1234 ptr=0x4d2 si_code: SI_USER, si_pid: 2799, si_uid: 500
> 
>    Without GDB:
> 
>    0.999014000: siginfo dump: si_signo: 33 [33], si_errno: 0,
>    si_value: int=1234 ptr=0x4d2 si_code: SI_TIMER, timer id: 0
> 
>    Two changes:
> 
>    * Signal nr   33 -> 32
>    * Signal source SI_TIMER -> SI_USER
> 
>    I guess we are looking at a GDB problem here. The problem is that as soon
>    as GDB catches the signal it re-raises it with different
>    properties. Especially changing the signal nr is bad. The program never
>    receives the right signal and will exit unless a handler for SIGRTMIN is
>    present.
> 
> I believe the signal number problem is already fixed.  The fix will be
> in the upcoming GDB 5.0 release.  A release candidate can be found in the
> GDB snapshots directory (see http://sourceware.cygnus.com/gdb for more
> info).  It would be great if you could test if the problem is indeed
> fixed.

With gdb 4.95.1 it works. I get now what you would expect:

Program received signal SIG33, Real-time event 33.
1.000379000: siginfo dump: si_signo: 33 [33], si_errno: 0,
si_value: int=1234 ptr=0x4d2 si_code: SI_TIMER, timer id: 0 

        Robert

-- 
Robert de Vries
[EMAIL PROTECTED]

Reply via email to