[buug] what strace output means?

tolieve tolieve at sjtu.edu.cn
Thu Jul 3 05:32:16 PDT 2003


I have study the system calls now. and I often confused by the strace output, 
because the system calls in the strace output differ from the Linux program 
manual, and at the same time, differ from the source code in Linux kernel. 
for example:

###############################################
in strace output
rt_sigprocmask(SIG_BLOCK, NULL, [RTMIN], 8) = 0

which is signal handling in a program.

in Linux program manual
 int sigprocmask(int how, const sigset_t *set, sigset_t *oldset);

and in the linux source code
kernel/signal.c: 
sys_rt_sigprocmask(int how, sigset_t *set, sigset_t *oset, size_t sigsetsize)

here the source code is identical with the strace output.
###############################################

arch/i386/kernel/process.c:asmlinkage int sys_fork(struct pt_regs regs)
arch/i386/kernel/process.c:asmlinkage int sys_clone(struct pt_regs regs)
arch/i386/kernel/process.c:asmlinkage int sys_vfork(struct pt_regs regs)
arch/i386/kernel/process.c:asmlinkage int sys_execve(struct pt_regs regs)

Linux program manual .
fork:       pid_t fork(void);
clone:      int clone(int (*fn)(void *), void *child_stack, int flags, void 
*arg);
vfork:      pid_t vfork(void);
execve:     int  execve(const  char  *filename,  char  *const  argv [], char 
*const envp[]);

###############################################

which one I should choose? or I just use the pretty one, left the other alone.

by the way , how can I get more info about the system call.
how can I get the meaning of the strace output.

Thanks at advance.



More information about the buug mailing list