![]() | |||||||||||||
Messages in this thread |
Marty Leisner once wrote:
>
>
> I want to write a debugging fork (i.e. one that prints and stops after forking).
>
> I want to use LD_PRELOAD to wrap around fork...so I need a more complicated C
> function called fork, eventually invoking the syscall.
>
> I'm a bit confused with the libc architecture for syscalls, what headers
> (sysdep?) do I need to pull out of the tree and place around an application
> for this?
>
> What I eventually want is:
>
>
> fork()
> {
> fancy stuff;
>
> result = system entry point fork()
>
> if(child) {
> printf();
> pause();
> }
> return result;
>
> }
>
>
The simpliest solution would be to call dlsym(RTLD_NEXT, "fork") (in <dlfcn.h>)
and link your preload library with -ldl. Free compatibility with Solaris :)
--
_. _ .
(_ ,_ _ , . / ` _ _L | Email: Oleg Kibirev <snowcat@netgate.net>
._)| U(_)\/\/ \_,(_L/L | Visit http://math.math.CSUFresno.EDU/~oleg/math.html
------------------------' to get my programs + PGP public key
| ||||||||||||
| Last update: 2005-03-22 13:39 [from the cache] ©2003-2008 | |||||||||||||