|
From: Vincent Penquerc'h <Vin...@ar...> - 2003-08-13 09:24:03
|
Hi, I posted message:
Message-ID: <B14C9D7F1977D111AD740060970ACBDA0189307D@warhol>
on the 30th of may 2003, and no answer was received. This patch
adds some ioctls and fixes some documentation (I'm unsure of the
actual extent of it, as I am not the patch author).
From the traffic on the list, it seems this patch suffers from
the same flaw as another one that stayed unapplied: addition of
include files which may or may not be present on the tgarget
system. Am I right in assuming this is the reason the patch was
not applied ? A quick answer would be nice, time permitting.
I can post the patches again if requested, if you can't find
the above message. Main text follows.
Thanks.
--
Vincent Penquerc'h
Hi,
This is from my girlfriend, who had been using Valgrind 1.0.4, and
ported some patches to 1.9.6.
--
Vincent Penquerc'h
Hi
I've been playing with valgrind (which is a very useful tool). I needed some
more ioctls, which I added (patch 'ioctls.diff' attached) and I've some
problems with signals.
IOCTLS:
I've added a tty, 2 sound, several frame buffer and VT ioctls.
These ioctls are very lightly tested : I've run programs which I know use
them
under valgrind, they worked and valgrind didn't complain.
I've also updated README_MISSING_SYSCALL_OR_IOCTL to use the new
SYSCAL_TRACK,
etc. instead of must_be_writable, etc.
SIGNALS:
From the manual (2.9 Handling of signals)
As specified by POSIX, a signal is blocked in its own handler.
From a comment at the beginning of coregrind/vg_signal.c
- A signal is not masked in its own handler. Neither are the
signals in the signal's blocking mask.
Which one is true ? (or which one is meant to be true ? ;)
There's a typical output of the program attached ('signals.c')
(run with valgrind -v --trace-signals=yes) :
... Skipping ...
[ 0] --28471-- signal 29 arrived ... queued
[ 1] --28471-- delivering signal 29 to thread 1
[ 2] --28471-- signal 29 arrived ... queued
[ 3] --28471-- signal 29 arrived ... already pending; discarded
[ 4] --28471-- signal 29 arrived ... already pending; discarded
[ 5] --28471-- signal 29 arrived ... already pending; discarded
[ 6] --28471-- signal 29 arrived ... already pending; discarded
[ 7] --28471-- signal 29 arrived ... already pending; discarded
[ 8] --28471-- signal 29 arrived ... already pending; discarded
[ 9] --28471-- signal 29 arrived ... already pending; discarded
[10] --28471-- signal 29 arrived ... already pending; discarded
[11] --28471-- signal 29 arrived ... already pending; discarded
[12] --28471-- signal 29 arrived ... already pending; discarded
[13] --28471-- signal 29 arrived ... already pending; discarded
[14] --28471-- signal 29 arrived ... already pending; discarded
[15] --28471-- signal 29 arrived ... already pending; discarded
[16] --28471-- signal 29 arrived ... already pending; discarded
[17] --28471-- signal 29 arrived ... already pending; discarded
[18] --28471-- signal 29 arrived ... already pending; discarded
[19] Entering: 1
[20] --28471-- delivering signal 29 to thread 1
[21] Entering: 2
[22] --28471-- signal 29 arrived ... queued
[23] --28471-- signal 29 arrived ... already pending; discarded
[24] --28471-- signal 29 arrived ... already pending; discarded
[25] Returning: 2
[26] --28471-- delivering signal 29 to thread 1
[27] Entering: 3
[28] Returning: 3
[29] --28471-- vg_pop_signal_frame (thread 1): valid magic
[30] --28471-- signal 29 arrived ... queued
[31] --28471-- vg_pop_signal_frame (thread 1): valid magic
[32] Returning: 1
[33] --28471-- delivering signal 29 to thread 1
[34] Entering: 2
[35] Returning: 2
[36] --28471-- vg_pop_signal_frame (thread 1): valid magic
[37] --28471-- vg_pop_signal_frame (thread 1): valid magic
... Skipping ...
As far as I understand, signals in lines #2, #22 and #30 should be
discarded.
I use Linux 2.4.13, gcc 2.95.3, libc 2.2.4, valgrind 1.9.6.
Note: signal 29 (SIGIO: I/O now possible) is non-POSIX, it comes from 4.2
BSD.
The example program was compiled with 'gcc -Wall signals.c'. You may want
to
change the MOUSE_DEVICE define at the beginning of the file if your mouse is
not in '/dev/mouse'. To test the program: run it and move the mouse, type
Ctrl-C to quit.
Thank you
--
Annie Testes
|