|
From: Tom H. <to...@co...> - 2005-10-13 22:54:32
|
In message <BAY...@ph...l> you wrote: > > >Could you explain what you mean a bit more? I'm not aware of any > >such flag you see... > > > >Do you mean the signal number in the bottom bit of a flags? As far > >as I know valgrind will let you specify almost any signal there. > > The thread implementation which I am using has these flags used in clone > call: CLONE_VM | CLONE_FS | CLONE_FILES | CLONE_SIGHAND | SIGCHLD. > > When I run the program using valgrind, the output is: > > ==6729== Unsupported clone() flags: 0xF11 > ==6729== > ==6729== The only supported clone() uses are: > ==6729== - via a threads library (LinuxThreads or NPTL) > ==6729== - via the implementation of fork or vfork > ==6729== - for the Quadrics Elan3 user-space driver > ==6729== > ==6729== Valgrind detected that your program requires > ==6729== the following unimplemented functionality: > ==6729== Valgrind does not support general clone(). > ==6729== This may be because the functionality is hard to implement, > ==6729== or because no reasonable program would behave this way, > ==6729== or because nobody has yet needed it. In any case, let us know at > ==6729== www.valgrind.org and/or try to work around the problem, if you can. > ==6729== > ==6729== Valgrind has to exit now. Sorry. Bye! > > If I remove the SIGCHLD from the thread implementations clone call, it will > run perfectly. So the question is, is there any side effects in valgrind, if > I change the valgrind to accept SIGCHLD clone flag? That would be fine, but my real concern is that after we went to some trouble to only check the important flags it seems that the x86 code has now sprouted a set of very explicit tests that reject all bar a handful of selected flag sets. The signal certainly doesn't matter, so at the very least that initial set of tests should ignore the signal number. > If you check the file syswrap-x86-linux.c in line 1032 (and also in > syswrap-amd64-linux.c, but it is not important right now), you will notice > why it does not work with SIGCHLD. I have valgrind version 3.0.1. Actually it would work the amd64 version which is why I confused because that was the one I looked at. Tom -- Tom Hughes (to...@co...) http://www.compton.nu/ |