|
From: Tom H. <th...@cy...> - 2004-02-11 00:02:09
|
In message <Pin...@ye...>
Nicholas Nethercote <nj...@ca...> wrote:
> Just to add to the confusion, I tried that program and get:
>
> ==31559== Valgrind detected that your program requires
> ==31559== the following unimplemented functionality:
> ==31559== clone(): not supported by Valgrind.
> We do now support programs linked against
> libpthread.so, though. Re-run with -v and ensure that
> you are picking up Valgrind's implementation of libpthread.so.
>
> valgrind: CVS HEAD.
> kernel: 2.4.20-24.9
> glibc: stable 2.3.2
> gcc: 3.2.2
>
> Current Valgrind 2.0.0 branch works ok.
>
> Very strange -- a trivial system() is tripping Valgrind up on my machine,
> yet this is the first I've seen of it on the current HEAD?
I wonder if system is implemented using vfork rather than fork?
The NPTL C library implements fork using clone, and as part of
the NPTL/TLS changes I made valgrind handle that, but it may be
that vfork is also being done using clone with slightly different
flags and valgrind isn't catching that.
Try stracing the test program without valgrind and see what
system calls the system() is doing.
Tom
--
Tom Hughes (th...@cy...)
Software Engineer, Cyberscience Corporation
http://www.cyberscience.com/
|