On Friday 19 August 2005 11:47, Bhanu Kalyan Chetlapalli wrote: > I am not very sure, but actually functions like _exit etc are declared > using the GCC attribute "noreturn". Even if you are using different > functions, there is a good chance that this attribute might be set. > > From unistd.h > > extern void _exit (int __status) __attribute__ ((__noreturn__)); > > noreturn attribute *may* not restore the registers saved by the > calling function (as part of the optimization). This can possibly > explain the segmentation violations etc. I don't think this is the cause of segfault as, when I return back to a previous system state, I restore registers relative to threads I'm monitoring. If I restore the register of all threads all at once, they restart from a previous state. The error occurs when, after a restoring, the threads reach the end. At this point, the segfault occurs. Do you have an idea on how I can manage the sys_exit using a technique different from the syscall hijacking. Thanks. Vincenzo Mallozzi. ___________________________________ Yahoo! Mail: gratis 1GB per i messaggi e allegati da 10MB http://mail.yahoo.it -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/