On Fri, Jun 06, 2008 at 04:38:34PM +0200, Martin Süßkraut wrote:
> has the tracing of system calls changed in utrace between Fedora 8 and 9?
> 
> My module works fine under Fedora 8, but under Fedora 9 the callbacks
> report_syscall_entry and report_syscall_exit seam not to be invoked
> any more.
I had the same problem.

For some reason the only way to trace the syscall is to trace also 
UTRACE_EVENT(SIGNAL_TERM)
or CORE.

I added an empty report_signal function and now it works.

This behavior was caused by this statement in arch/x86/kernel/ptrace.c:
>  if (!tracehook_consider_fatal_signal(current, SIGTRAP, SIG_DFL))
>    goto out;

and in include/linux/tracehook.h:
> static inline int tracehook_consider_fatal_signal(struct task_struct *task,
>               int sig,
>               void __user *handler)
> {
>   return (tsk_utrace_flags(task) & (UTRACE_EVENT(SIGNAL_TERM) |
>             UTRACE_EVENT(SIGNAL_CORE)));
> }

so if neither SIGNAL_TERM nor SIGNAL_CORE got catched, syscalls cannot be
traced.

Roland, is this a feature or a bug?

        renzo

Reply via email to