Created
October 3, 2008 01:57
-
-
Save willb/14488 to your computer and use it in GitHub Desktop.
This is some example code showing how to use the ptrace system call under Linux to trace the system calls of a child process.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
ptr_inspect.c | |
Demonstration code; shows how to trace the system calls in a child | |
process with ptrace. Only works on 64-bit x86 Linux for now, I'm | |
afraid. (Even worse, it's only tested on Linux 2.6....) | |
The callname() function looks clunky and machine-generated because it | |
*is* clunky and machine-generated. | |
I got inspiration and a starting point from this old LJ article: | |
http://www.linuxjournal.com/article/6100 | |
This code is in the public domain. Share and enjoy. | |
Will Benton | |
Madison, 2008 | |
*/ | |
#include <sys/ptrace.h> | |
#include <sys/types.h> | |
#include <sys/wait.h> | |
#include <sys/user.h> | |
#include <syscall.h> | |
#include <unistd.h> | |
#include <stdio.h> | |
#include <stdlib.h> | |
const char* callname(long call); | |
#if __WORDSIZE == 64 | |
#define REG(reg) reg.orig_rax | |
#else | |
#define REG(reg) reg.orig_eax | |
#endif | |
int main(int argc, char* argv[]) { | |
pid_t child; | |
if (argc == 1) { | |
exit(0); | |
} | |
char* chargs[argc]; | |
int i = 0; | |
while (i < argc - 1) { | |
chargs[i] = argv[i+1]; | |
i++; | |
} | |
chargs[i] = NULL; | |
child = fork(); | |
if(child == 0) { | |
ptrace(PTRACE_TRACEME, 0, NULL, NULL); | |
execvp(chargs[0], chargs); | |
} else { | |
int status; | |
while(waitpid(child, &status, 0) && ! WIFEXITED(status)) { | |
struct user_regs_struct regs; | |
ptrace(PTRACE_GETREGS, child, NULL, ®s); | |
fprintf(stderr, "system call %s from pid %d\n", callname(REG(regs)), child); | |
ptrace(PTRACE_SYSCALL, child, NULL, NULL); | |
} | |
} | |
exit(0); | |
} | |
const char* callname(long call) { | |
switch(call) { | |
#ifdef SYS__sysctl | |
case SYS__sysctl : return "_sysctl"; | |
#endif | |
#ifdef SYS_access | |
case SYS_access : return "access"; | |
#endif | |
#ifdef SYS_acct | |
case SYS_acct : return "acct"; | |
#endif | |
#ifdef SYS_add_key | |
case SYS_add_key : return "add_key"; | |
#endif | |
#ifdef SYS_adjtimex | |
case SYS_adjtimex : return "adjtimex"; | |
#endif | |
#ifdef SYS_afs_syscall | |
case SYS_afs_syscall : return "afs_syscall"; | |
#endif | |
#ifdef SYS_alarm | |
case SYS_alarm : return "alarm"; | |
#endif | |
#ifdef SYS_brk | |
case SYS_brk : return "brk"; | |
#endif | |
#ifdef SYS_capget | |
case SYS_capget : return "capget"; | |
#endif | |
#ifdef SYS_capset | |
case SYS_capset : return "capset"; | |
#endif | |
#ifdef SYS_chdir | |
case SYS_chdir : return "chdir"; | |
#endif | |
#ifdef SYS_chmod | |
case SYS_chmod : return "chmod"; | |
#endif | |
#ifdef SYS_chown | |
case SYS_chown : return "chown"; | |
#endif | |
#ifdef SYS_chroot | |
case SYS_chroot : return "chroot"; | |
#endif | |
#ifdef SYS_clock_getres | |
case SYS_clock_getres : return "clock_getres"; | |
#endif | |
#ifdef SYS_clock_gettime | |
case SYS_clock_gettime : return "clock_gettime"; | |
#endif | |
#ifdef SYS_clock_nanosleep | |
case SYS_clock_nanosleep : return "clock_nanosleep"; | |
#endif | |
#ifdef SYS_clock_settime | |
case SYS_clock_settime : return "clock_settime"; | |
#endif | |
#ifdef SYS_clone | |
case SYS_clone : return "clone"; | |
#endif | |
#ifdef SYS_close | |
case SYS_close : return "close"; | |
#endif | |
#ifdef SYS_creat | |
case SYS_creat : return "creat"; | |
#endif | |
#ifdef SYS_create_module | |
case SYS_create_module : return "create_module"; | |
#endif | |
#ifdef SYS_delete_module | |
case SYS_delete_module : return "delete_module"; | |
#endif | |
#ifdef SYS_dup | |
case SYS_dup : return "dup"; | |
#endif | |
#ifdef SYS_dup2 | |
case SYS_dup2 : return "dup2"; | |
#endif | |
#ifdef SYS_epoll_create | |
case SYS_epoll_create : return "epoll_create"; | |
#endif | |
#ifdef SYS_epoll_ctl | |
case SYS_epoll_ctl : return "epoll_ctl"; | |
#endif | |
#ifdef SYS_epoll_pwait | |
case SYS_epoll_pwait : return "epoll_pwait"; | |
#endif | |
#ifdef SYS_epoll_wait | |
case SYS_epoll_wait : return "epoll_wait"; | |
#endif | |
#ifdef SYS_eventfd | |
case SYS_eventfd : return "eventfd"; | |
#endif | |
#ifdef SYS_execve | |
case SYS_execve : return "execve"; | |
#endif | |
#ifdef SYS_exit | |
case SYS_exit : return "exit"; | |
#endif | |
#ifdef SYS_exit_group | |
case SYS_exit_group : return "exit_group"; | |
#endif | |
#ifdef SYS_faccessat | |
case SYS_faccessat : return "faccessat"; | |
#endif | |
#ifdef SYS_fadvise64 | |
case SYS_fadvise64 : return "fadvise64"; | |
#endif | |
#ifdef SYS_fallocate | |
case SYS_fallocate : return "fallocate"; | |
#endif | |
#ifdef SYS_fchdir | |
case SYS_fchdir : return "fchdir"; | |
#endif | |
#ifdef SYS_fchmod | |
case SYS_fchmod : return "fchmod"; | |
#endif | |
#ifdef SYS_fchmodat | |
case SYS_fchmodat : return "fchmodat"; | |
#endif | |
#ifdef SYS_fchown | |
case SYS_fchown : return "fchown"; | |
#endif | |
#ifdef SYS_fchownat | |
case SYS_fchownat : return "fchownat"; | |
#endif | |
#ifdef SYS_fcntl | |
case SYS_fcntl : return "fcntl"; | |
#endif | |
#ifdef SYS_fdatasync | |
case SYS_fdatasync : return "fdatasync"; | |
#endif | |
#ifdef SYS_fgetxattr | |
case SYS_fgetxattr : return "fgetxattr"; | |
#endif | |
#ifdef SYS_flistxattr | |
case SYS_flistxattr : return "flistxattr"; | |
#endif | |
#ifdef SYS_flock | |
case SYS_flock : return "flock"; | |
#endif | |
#ifdef SYS_fork | |
case SYS_fork : return "fork"; | |
#endif | |
#ifdef SYS_fremovexattr | |
case SYS_fremovexattr : return "fremovexattr"; | |
#endif | |
#ifdef SYS_fsetxattr | |
case SYS_fsetxattr : return "fsetxattr"; | |
#endif | |
#ifdef SYS_fstat | |
case SYS_fstat : return "fstat"; | |
#endif | |
#ifdef SYS_fstatfs | |
case SYS_fstatfs : return "fstatfs"; | |
#endif | |
#ifdef SYS_fsync | |
case SYS_fsync : return "fsync"; | |
#endif | |
#ifdef SYS_ftruncate | |
case SYS_ftruncate : return "ftruncate"; | |
#endif | |
#ifdef SYS_futex | |
case SYS_futex : return "futex"; | |
#endif | |
#ifdef SYS_futimesat | |
case SYS_futimesat : return "futimesat"; | |
#endif | |
#ifdef SYS_get_kernel_syms | |
case SYS_get_kernel_syms : return "get_kernel_syms"; | |
#endif | |
#ifdef SYS_get_mempolicy | |
case SYS_get_mempolicy : return "get_mempolicy"; | |
#endif | |
#ifdef SYS_get_robust_list | |
case SYS_get_robust_list : return "get_robust_list"; | |
#endif | |
#ifdef SYS_get_thread_area | |
case SYS_get_thread_area : return "get_thread_area"; | |
#endif | |
#ifdef SYS_getcwd | |
case SYS_getcwd : return "getcwd"; | |
#endif | |
#ifdef SYS_getdents | |
case SYS_getdents : return "getdents"; | |
#endif | |
#ifdef SYS_getdents64 | |
case SYS_getdents64 : return "getdents64"; | |
#endif | |
#ifdef SYS_getegid | |
case SYS_getegid : return "getegid"; | |
#endif | |
#ifdef SYS_geteuid | |
case SYS_geteuid : return "geteuid"; | |
#endif | |
#ifdef SYS_getgid | |
case SYS_getgid : return "getgid"; | |
#endif | |
#ifdef SYS_getgroups | |
case SYS_getgroups : return "getgroups"; | |
#endif | |
#ifdef SYS_getitimer | |
case SYS_getitimer : return "getitimer"; | |
#endif | |
#ifdef SYS_getpgid | |
case SYS_getpgid : return "getpgid"; | |
#endif | |
#ifdef SYS_getpgrp | |
case SYS_getpgrp : return "getpgrp"; | |
#endif | |
#ifdef SYS_getpid | |
case SYS_getpid : return "getpid"; | |
#endif | |
#ifdef SYS_getpmsg | |
case SYS_getpmsg : return "getpmsg"; | |
#endif | |
#ifdef SYS_getppid | |
case SYS_getppid : return "getppid"; | |
#endif | |
#ifdef SYS_getpriority | |
case SYS_getpriority : return "getpriority"; | |
#endif | |
#ifdef SYS_getresgid | |
case SYS_getresgid : return "getresgid"; | |
#endif | |
#ifdef SYS_getresuid | |
case SYS_getresuid : return "getresuid"; | |
#endif | |
#ifdef SYS_getrlimit | |
case SYS_getrlimit : return "getrlimit"; | |
#endif | |
#ifdef SYS_getrusage | |
case SYS_getrusage : return "getrusage"; | |
#endif | |
#ifdef SYS_getsid | |
case SYS_getsid : return "getsid"; | |
#endif | |
#ifdef SYS_gettid | |
case SYS_gettid : return "gettid"; | |
#endif | |
#ifdef SYS_gettimeofday | |
case SYS_gettimeofday : return "gettimeofday"; | |
#endif | |
#ifdef SYS_getuid | |
case SYS_getuid : return "getuid"; | |
#endif | |
#ifdef SYS_getxattr | |
case SYS_getxattr : return "getxattr"; | |
#endif | |
#ifdef SYS_init_module | |
case SYS_init_module : return "init_module"; | |
#endif | |
#ifdef SYS_inotify_add_watch | |
case SYS_inotify_add_watch : return "inotify_add_watch"; | |
#endif | |
#ifdef SYS_inotify_init | |
case SYS_inotify_init : return "inotify_init"; | |
#endif | |
#ifdef SYS_inotify_rm_watch | |
case SYS_inotify_rm_watch : return "inotify_rm_watch"; | |
#endif | |
#ifdef SYS_io_cancel | |
case SYS_io_cancel : return "io_cancel"; | |
#endif | |
#ifdef SYS_io_destroy | |
case SYS_io_destroy : return "io_destroy"; | |
#endif | |
#ifdef SYS_io_getevents | |
case SYS_io_getevents : return "io_getevents"; | |
#endif | |
#ifdef SYS_io_setup | |
case SYS_io_setup : return "io_setup"; | |
#endif | |
#ifdef SYS_io_submit | |
case SYS_io_submit : return "io_submit"; | |
#endif | |
#ifdef SYS_ioctl | |
case SYS_ioctl : return "ioctl"; | |
#endif | |
#ifdef SYS_ioperm | |
case SYS_ioperm : return "ioperm"; | |
#endif | |
#ifdef SYS_iopl | |
case SYS_iopl : return "iopl"; | |
#endif | |
#ifdef SYS_ioprio_get | |
case SYS_ioprio_get : return "ioprio_get"; | |
#endif | |
#ifdef SYS_ioprio_set | |
case SYS_ioprio_set : return "ioprio_set"; | |
#endif | |
#ifdef SYS_kexec_load | |
case SYS_kexec_load : return "kexec_load"; | |
#endif | |
#ifdef SYS_keyctl | |
case SYS_keyctl : return "keyctl"; | |
#endif | |
#ifdef SYS_kill | |
case SYS_kill : return "kill"; | |
#endif | |
#ifdef SYS_lchown | |
case SYS_lchown : return "lchown"; | |
#endif | |
#ifdef SYS_lgetxattr | |
case SYS_lgetxattr : return "lgetxattr"; | |
#endif | |
#ifdef SYS_link | |
case SYS_link : return "link"; | |
#endif | |
#ifdef SYS_linkat | |
case SYS_linkat : return "linkat"; | |
#endif | |
#ifdef SYS_listxattr | |
case SYS_listxattr : return "listxattr"; | |
#endif | |
#ifdef SYS_llistxattr | |
case SYS_llistxattr : return "llistxattr"; | |
#endif | |
#ifdef SYS_lookup_dcookie | |
case SYS_lookup_dcookie : return "lookup_dcookie"; | |
#endif | |
#ifdef SYS_lremovexattr | |
case SYS_lremovexattr : return "lremovexattr"; | |
#endif | |
#ifdef SYS_lseek | |
case SYS_lseek : return "lseek"; | |
#endif | |
#ifdef SYS_lsetxattr | |
case SYS_lsetxattr : return "lsetxattr"; | |
#endif | |
#ifdef SYS_lstat | |
case SYS_lstat : return "lstat"; | |
#endif | |
#ifdef SYS_madvise | |
case SYS_madvise : return "madvise"; | |
#endif | |
#ifdef SYS_mbind | |
case SYS_mbind : return "mbind"; | |
#endif | |
#ifdef SYS_migrate_pages | |
case SYS_migrate_pages : return "migrate_pages"; | |
#endif | |
#ifdef SYS_mincore | |
case SYS_mincore : return "mincore"; | |
#endif | |
#ifdef SYS_mkdir | |
case SYS_mkdir : return "mkdir"; | |
#endif | |
#ifdef SYS_mkdirat | |
case SYS_mkdirat : return "mkdirat"; | |
#endif | |
#ifdef SYS_mknod | |
case SYS_mknod : return "mknod"; | |
#endif | |
#ifdef SYS_mknodat | |
case SYS_mknodat : return "mknodat"; | |
#endif | |
#ifdef SYS_mlock | |
case SYS_mlock : return "mlock"; | |
#endif | |
#ifdef SYS_mlockall | |
case SYS_mlockall : return "mlockall"; | |
#endif | |
#ifdef SYS_mmap | |
case SYS_mmap : return "mmap"; | |
#endif | |
#ifdef SYS_modify_ldt | |
case SYS_modify_ldt : return "modify_ldt"; | |
#endif | |
#ifdef SYS_mount | |
case SYS_mount : return "mount"; | |
#endif | |
#ifdef SYS_move_pages | |
case SYS_move_pages : return "move_pages"; | |
#endif | |
#ifdef SYS_mprotect | |
case SYS_mprotect : return "mprotect"; | |
#endif | |
#ifdef SYS_mq_getsetattr | |
case SYS_mq_getsetattr : return "mq_getsetattr"; | |
#endif | |
#ifdef SYS_mq_notify | |
case SYS_mq_notify : return "mq_notify"; | |
#endif | |
#ifdef SYS_mq_open | |
case SYS_mq_open : return "mq_open"; | |
#endif | |
#ifdef SYS_mq_timedreceive | |
case SYS_mq_timedreceive : return "mq_timedreceive"; | |
#endif | |
#ifdef SYS_mq_timedsend | |
case SYS_mq_timedsend : return "mq_timedsend"; | |
#endif | |
#ifdef SYS_mq_unlink | |
case SYS_mq_unlink : return "mq_unlink"; | |
#endif | |
#ifdef SYS_mremap | |
case SYS_mremap : return "mremap"; | |
#endif | |
#ifdef SYS_msync | |
case SYS_msync : return "msync"; | |
#endif | |
#ifdef SYS_munlock | |
case SYS_munlock : return "munlock"; | |
#endif | |
#ifdef SYS_munlockall | |
case SYS_munlockall : return "munlockall"; | |
#endif | |
#ifdef SYS_munmap | |
case SYS_munmap : return "munmap"; | |
#endif | |
#ifdef SYS_nanosleep | |
case SYS_nanosleep : return "nanosleep"; | |
#endif | |
#ifdef SYS_nfsservctl | |
case SYS_nfsservctl : return "nfsservctl"; | |
#endif | |
#ifdef SYS_open | |
case SYS_open : return "open"; | |
#endif | |
#ifdef SYS_openat | |
case SYS_openat : return "openat"; | |
#endif | |
#ifdef SYS_pause | |
case SYS_pause : return "pause"; | |
#endif | |
#ifdef SYS_personality | |
case SYS_personality : return "personality"; | |
#endif | |
#ifdef SYS_pipe | |
case SYS_pipe : return "pipe"; | |
#endif | |
#ifdef SYS_pivot_root | |
case SYS_pivot_root : return "pivot_root"; | |
#endif | |
#ifdef SYS_poll | |
case SYS_poll : return "poll"; | |
#endif | |
#ifdef SYS_ppoll | |
case SYS_ppoll : return "ppoll"; | |
#endif | |
#ifdef SYS_prctl | |
case SYS_prctl : return "prctl"; | |
#endif | |
#ifdef SYS_pread64 | |
case SYS_pread64 : return "pread64"; | |
#endif | |
#ifdef SYS_pselect6 | |
case SYS_pselect6 : return "pselect6"; | |
#endif | |
#ifdef SYS_ptrace | |
case SYS_ptrace : return "ptrace"; | |
#endif | |
#ifdef SYS_putpmsg | |
case SYS_putpmsg : return "putpmsg"; | |
#endif | |
#ifdef SYS_pwrite64 | |
case SYS_pwrite64 : return "pwrite64"; | |
#endif | |
#ifdef SYS_query_module | |
case SYS_query_module : return "query_module"; | |
#endif | |
#ifdef SYS_quotactl | |
case SYS_quotactl : return "quotactl"; | |
#endif | |
#ifdef SYS_read | |
case SYS_read : return "read"; | |
#endif | |
#ifdef SYS_readahead | |
case SYS_readahead : return "readahead"; | |
#endif | |
#ifdef SYS_readlink | |
case SYS_readlink : return "readlink"; | |
#endif | |
#ifdef SYS_readlinkat | |
case SYS_readlinkat : return "readlinkat"; | |
#endif | |
#ifdef SYS_readv | |
case SYS_readv : return "readv"; | |
#endif | |
#ifdef SYS_reboot | |
case SYS_reboot : return "reboot"; | |
#endif | |
#ifdef SYS_remap_file_pages | |
case SYS_remap_file_pages : return "remap_file_pages"; | |
#endif | |
#ifdef SYS_removexattr | |
case SYS_removexattr : return "removexattr"; | |
#endif | |
#ifdef SYS_rename | |
case SYS_rename : return "rename"; | |
#endif | |
#ifdef SYS_renameat | |
case SYS_renameat : return "renameat"; | |
#endif | |
#ifdef SYS_request_key | |
case SYS_request_key : return "request_key"; | |
#endif | |
#ifdef SYS_restart_syscall | |
case SYS_restart_syscall : return "restart_syscall"; | |
#endif | |
#ifdef SYS_rmdir | |
case SYS_rmdir : return "rmdir"; | |
#endif | |
#ifdef SYS_rt_sigaction | |
case SYS_rt_sigaction : return "rt_sigaction"; | |
#endif | |
#ifdef SYS_rt_sigpending | |
case SYS_rt_sigpending : return "rt_sigpending"; | |
#endif | |
#ifdef SYS_rt_sigprocmask | |
case SYS_rt_sigprocmask : return "rt_sigprocmask"; | |
#endif | |
#ifdef SYS_rt_sigqueueinfo | |
case SYS_rt_sigqueueinfo : return "rt_sigqueueinfo"; | |
#endif | |
#ifdef SYS_rt_sigreturn | |
case SYS_rt_sigreturn : return "rt_sigreturn"; | |
#endif | |
#ifdef SYS_rt_sigsuspend | |
case SYS_rt_sigsuspend : return "rt_sigsuspend"; | |
#endif | |
#ifdef SYS_rt_sigtimedwait | |
case SYS_rt_sigtimedwait : return "rt_sigtimedwait"; | |
#endif | |
#ifdef SYS_sched_get_priority_max | |
case SYS_sched_get_priority_max : return "sched_get_priority_max"; | |
#endif | |
#ifdef SYS_sched_get_priority_min | |
case SYS_sched_get_priority_min : return "sched_get_priority_min"; | |
#endif | |
#ifdef SYS_sched_getaffinity | |
case SYS_sched_getaffinity : return "sched_getaffinity"; | |
#endif | |
#ifdef SYS_sched_getparam | |
case SYS_sched_getparam : return "sched_getparam"; | |
#endif | |
#ifdef SYS_sched_getscheduler | |
case SYS_sched_getscheduler : return "sched_getscheduler"; | |
#endif | |
#ifdef SYS_sched_rr_get_interval | |
case SYS_sched_rr_get_interval : return "sched_rr_get_interval"; | |
#endif | |
#ifdef SYS_sched_setaffinity | |
case SYS_sched_setaffinity : return "sched_setaffinity"; | |
#endif | |
#ifdef SYS_sched_setparam | |
case SYS_sched_setparam : return "sched_setparam"; | |
#endif | |
#ifdef SYS_sched_setscheduler | |
case SYS_sched_setscheduler : return "sched_setscheduler"; | |
#endif | |
#ifdef SYS_sched_yield | |
case SYS_sched_yield : return "sched_yield"; | |
#endif | |
#ifdef SYS_select | |
case SYS_select : return "select"; | |
#endif | |
#ifdef SYS_sendfile | |
case SYS_sendfile : return "sendfile"; | |
#endif | |
#ifdef SYS_set_mempolicy | |
case SYS_set_mempolicy : return "set_mempolicy"; | |
#endif | |
#ifdef SYS_set_robust_list | |
case SYS_set_robust_list : return "set_robust_list"; | |
#endif | |
#ifdef SYS_set_thread_area | |
case SYS_set_thread_area : return "set_thread_area"; | |
#endif | |
#ifdef SYS_set_tid_address | |
case SYS_set_tid_address : return "set_tid_address"; | |
#endif | |
#ifdef SYS_setdomainname | |
case SYS_setdomainname : return "setdomainname"; | |
#endif | |
#ifdef SYS_setfsgid | |
case SYS_setfsgid : return "setfsgid"; | |
#endif | |
#ifdef SYS_setfsuid | |
case SYS_setfsuid : return "setfsuid"; | |
#endif | |
#ifdef SYS_setgid | |
case SYS_setgid : return "setgid"; | |
#endif | |
#ifdef SYS_setgroups | |
case SYS_setgroups : return "setgroups"; | |
#endif | |
#ifdef SYS_sethostname | |
case SYS_sethostname : return "sethostname"; | |
#endif | |
#ifdef SYS_setitimer | |
case SYS_setitimer : return "setitimer"; | |
#endif | |
#ifdef SYS_setpgid | |
case SYS_setpgid : return "setpgid"; | |
#endif | |
#ifdef SYS_setpriority | |
case SYS_setpriority : return "setpriority"; | |
#endif | |
#ifdef SYS_setregid | |
case SYS_setregid : return "setregid"; | |
#endif | |
#ifdef SYS_setresgid | |
case SYS_setresgid : return "setresgid"; | |
#endif | |
#ifdef SYS_setresuid | |
case SYS_setresuid : return "setresuid"; | |
#endif | |
#ifdef SYS_setreuid | |
case SYS_setreuid : return "setreuid"; | |
#endif | |
#ifdef SYS_setrlimit | |
case SYS_setrlimit : return "setrlimit"; | |
#endif | |
#ifdef SYS_setsid | |
case SYS_setsid : return "setsid"; | |
#endif | |
#ifdef SYS_settimeofday | |
case SYS_settimeofday : return "settimeofday"; | |
#endif | |
#ifdef SYS_setuid | |
case SYS_setuid : return "setuid"; | |
#endif | |
#ifdef SYS_setxattr | |
case SYS_setxattr : return "setxattr"; | |
#endif | |
#ifdef SYS_sigaltstack | |
case SYS_sigaltstack : return "sigaltstack"; | |
#endif | |
#ifdef SYS_signalfd | |
case SYS_signalfd : return "signalfd"; | |
#endif | |
#ifdef SYS_splice | |
case SYS_splice : return "splice"; | |
#endif | |
#ifdef SYS_stat | |
case SYS_stat : return "stat"; | |
#endif | |
#ifdef SYS_statfs | |
case SYS_statfs : return "statfs"; | |
#endif | |
#ifdef SYS_swapoff | |
case SYS_swapoff : return "swapoff"; | |
#endif | |
#ifdef SYS_swapon | |
case SYS_swapon : return "swapon"; | |
#endif | |
#ifdef SYS_symlink | |
case SYS_symlink : return "symlink"; | |
#endif | |
#ifdef SYS_symlinkat | |
case SYS_symlinkat : return "symlinkat"; | |
#endif | |
#ifdef SYS_sync | |
case SYS_sync : return "sync"; | |
#endif | |
#ifdef SYS_sync_file_range | |
case SYS_sync_file_range : return "sync_file_range"; | |
#endif | |
#ifdef SYS_sysfs | |
case SYS_sysfs : return "sysfs"; | |
#endif | |
#ifdef SYS_sysinfo | |
case SYS_sysinfo : return "sysinfo"; | |
#endif | |
#ifdef SYS_syslog | |
case SYS_syslog : return "syslog"; | |
#endif | |
#ifdef SYS_tee | |
case SYS_tee : return "tee"; | |
#endif | |
#ifdef SYS_tgkill | |
case SYS_tgkill : return "tgkill"; | |
#endif | |
#ifdef SYS_time | |
case SYS_time : return "time"; | |
#endif | |
#ifdef SYS_timer_create | |
case SYS_timer_create : return "timer_create"; | |
#endif | |
#ifdef SYS_timer_delete | |
case SYS_timer_delete : return "timer_delete"; | |
#endif | |
#ifdef SYS_timer_getoverrun | |
case SYS_timer_getoverrun : return "timer_getoverrun"; | |
#endif | |
#ifdef SYS_timer_gettime | |
case SYS_timer_gettime : return "timer_gettime"; | |
#endif | |
#ifdef SYS_timer_settime | |
case SYS_timer_settime : return "timer_settime"; | |
#endif | |
#ifdef SYS_timerfd_create | |
case SYS_timerfd_create : return "timerfd_create"; | |
#endif | |
#ifdef SYS_timerfd_gettime | |
case SYS_timerfd_gettime : return "timerfd_gettime"; | |
#endif | |
#ifdef SYS_timerfd_settime | |
case SYS_timerfd_settime : return "timerfd_settime"; | |
#endif | |
#ifdef SYS_times | |
case SYS_times : return "times"; | |
#endif | |
#ifdef SYS_tkill | |
case SYS_tkill : return "tkill"; | |
#endif | |
#ifdef SYS_truncate | |
case SYS_truncate : return "truncate"; | |
#endif | |
#ifdef SYS_umask | |
case SYS_umask : return "umask"; | |
#endif | |
#ifdef SYS_umount2 | |
case SYS_umount2 : return "umount2"; | |
#endif | |
#ifdef SYS_uname | |
case SYS_uname : return "uname"; | |
#endif | |
#ifdef SYS_unlink | |
case SYS_unlink : return "unlink"; | |
#endif | |
#ifdef SYS_unlinkat | |
case SYS_unlinkat : return "unlinkat"; | |
#endif | |
#ifdef SYS_unshare | |
case SYS_unshare : return "unshare"; | |
#endif | |
#ifdef SYS_uselib | |
case SYS_uselib : return "uselib"; | |
#endif | |
#ifdef SYS_ustat | |
case SYS_ustat : return "ustat"; | |
#endif | |
#ifdef SYS_utime | |
case SYS_utime : return "utime"; | |
#endif | |
#ifdef SYS_utimensat | |
case SYS_utimensat : return "utimensat"; | |
#endif | |
#ifdef SYS_utimes | |
case SYS_utimes : return "utimes"; | |
#endif | |
#ifdef SYS_vfork | |
case SYS_vfork : return "vfork"; | |
#endif | |
#ifdef SYS_vhangup | |
case SYS_vhangup : return "vhangup"; | |
#endif | |
#ifdef SYS_vmsplice | |
case SYS_vmsplice : return "vmsplice"; | |
#endif | |
#ifdef SYS_vserver | |
case SYS_vserver : return "vserver"; | |
#endif | |
#ifdef SYS_wait4 | |
case SYS_wait4 : return "wait4"; | |
#endif | |
#ifdef SYS_waitid | |
case SYS_waitid : return "waitid"; | |
#endif | |
#ifdef SYS_write | |
case SYS_write : return "write"; | |
#endif | |
#ifdef SYS_writev | |
case SYS_writev : return "writev"; | |
#endif | |
#ifdef SYS_accept | |
case SYS_accept : return "accept"; | |
#endif | |
#ifdef SYS_arch_prctl | |
case SYS_arch_prctl : return "arch_prctl"; | |
#endif | |
#ifdef SYS_bind | |
case SYS_bind : return "bind"; | |
#endif | |
#ifdef SYS_connect | |
case SYS_connect : return "connect"; | |
#endif | |
#ifdef SYS_epoll_ctl_old | |
case SYS_epoll_ctl_old : return "epoll_ctl_old"; | |
#endif | |
#ifdef SYS_epoll_wait_old | |
case SYS_epoll_wait_old : return "epoll_wait_old"; | |
#endif | |
#ifdef SYS_getpeername | |
case SYS_getpeername : return "getpeername"; | |
#endif | |
#ifdef SYS_getsockname | |
case SYS_getsockname : return "getsockname"; | |
#endif | |
#ifdef SYS_getsockopt | |
case SYS_getsockopt : return "getsockopt"; | |
#endif | |
#ifdef SYS_listen | |
case SYS_listen : return "listen"; | |
#endif | |
#ifdef SYS_msgctl | |
case SYS_msgctl : return "msgctl"; | |
#endif | |
#ifdef SYS_msgget | |
case SYS_msgget : return "msgget"; | |
#endif | |
#ifdef SYS_msgrcv | |
case SYS_msgrcv : return "msgrcv"; | |
#endif | |
#ifdef SYS_msgsnd | |
case SYS_msgsnd : return "msgsnd"; | |
#endif | |
#ifdef SYS_newfstatat | |
case SYS_newfstatat : return "newfstatat"; | |
#endif | |
#ifdef SYS_recvfrom | |
case SYS_recvfrom : return "recvfrom"; | |
#endif | |
#ifdef SYS_recvmsg | |
case SYS_recvmsg : return "recvmsg"; | |
#endif | |
#ifdef SYS_security | |
case SYS_security : return "security"; | |
#endif | |
#ifdef SYS_semctl | |
case SYS_semctl : return "semctl"; | |
#endif | |
#ifdef SYS_semget | |
case SYS_semget : return "semget"; | |
#endif | |
#ifdef SYS_semop | |
case SYS_semop : return "semop"; | |
#endif | |
#ifdef SYS_semtimedop | |
case SYS_semtimedop : return "semtimedop"; | |
#endif | |
#ifdef SYS_sendmsg | |
case SYS_sendmsg : return "sendmsg"; | |
#endif | |
#ifdef SYS_sendto | |
case SYS_sendto : return "sendto"; | |
#endif | |
#ifdef SYS_setsockopt | |
case SYS_setsockopt : return "setsockopt"; | |
#endif | |
#ifdef SYS_shmat | |
case SYS_shmat : return "shmat"; | |
#endif | |
#ifdef SYS_shmctl | |
case SYS_shmctl : return "shmctl"; | |
#endif | |
#ifdef SYS_shmdt | |
case SYS_shmdt : return "shmdt"; | |
#endif | |
#ifdef SYS_shmget | |
case SYS_shmget : return "shmget"; | |
#endif | |
#ifdef SYS_shutdown | |
case SYS_shutdown : return "shutdown"; | |
#endif | |
#ifdef SYS_socket | |
case SYS_socket : return "socket"; | |
#endif | |
#ifdef SYS_socketpair | |
case SYS_socketpair : return "socketpair"; | |
#endif | |
#ifdef SYS_tuxcall | |
case SYS_tuxcall : return "tuxcall"; | |
#endif | |
#ifdef SYS__llseek | |
case SYS__llseek : return "_llseek"; | |
#endif | |
#ifdef SYS__newselect | |
case SYS__newselect : return "_newselect"; | |
#endif | |
#ifdef SYS_bdflush | |
case SYS_bdflush : return "bdflush"; | |
#endif | |
#ifdef SYS_break | |
case SYS_break : return "break"; | |
#endif | |
#ifdef SYS_chown32 | |
case SYS_chown32 : return "chown32"; | |
#endif | |
#ifdef SYS_fadvise64_64 | |
case SYS_fadvise64_64 : return "fadvise64_64"; | |
#endif | |
#ifdef SYS_fchown32 | |
case SYS_fchown32 : return "fchown32"; | |
#endif | |
#ifdef SYS_fcntl64 | |
case SYS_fcntl64 : return "fcntl64"; | |
#endif | |
#ifdef SYS_fstat64 | |
case SYS_fstat64 : return "fstat64"; | |
#endif | |
#ifdef SYS_fstatat64 | |
case SYS_fstatat64 : return "fstatat64"; | |
#endif | |
#ifdef SYS_fstatfs64 | |
case SYS_fstatfs64 : return "fstatfs64"; | |
#endif | |
#ifdef SYS_ftime | |
case SYS_ftime : return "ftime"; | |
#endif | |
#ifdef SYS_ftruncate64 | |
case SYS_ftruncate64 : return "ftruncate64"; | |
#endif | |
#ifdef SYS_getcpu | |
case SYS_getcpu : return "getcpu"; | |
#endif | |
#ifdef SYS_getegid32 | |
case SYS_getegid32 : return "getegid32"; | |
#endif | |
#ifdef SYS_geteuid32 | |
case SYS_geteuid32 : return "geteuid32"; | |
#endif | |
#ifdef SYS_getgid32 | |
case SYS_getgid32 : return "getgid32"; | |
#endif | |
#ifdef SYS_getgroups32 | |
case SYS_getgroups32 : return "getgroups32"; | |
#endif | |
#ifdef SYS_getresgid32 | |
case SYS_getresgid32 : return "getresgid32"; | |
#endif | |
#ifdef SYS_getresuid32 | |
case SYS_getresuid32 : return "getresuid32"; | |
#endif | |
#ifdef SYS_getuid32 | |
case SYS_getuid32 : return "getuid32"; | |
#endif | |
#ifdef SYS_gtty | |
case SYS_gtty : return "gtty"; | |
#endif | |
#ifdef SYS_idle | |
case SYS_idle : return "idle"; | |
#endif | |
#ifdef SYS_ipc | |
case SYS_ipc : return "ipc"; | |
#endif | |
#ifdef SYS_lchown32 | |
case SYS_lchown32 : return "lchown32"; | |
#endif | |
#ifdef SYS_lock | |
case SYS_lock : return "lock"; | |
#endif | |
#ifdef SYS_lstat64 | |
case SYS_lstat64 : return "lstat64"; | |
#endif | |
#ifdef SYS_madvise1 | |
case SYS_madvise1 : return "madvise1"; | |
#endif | |
#ifdef SYS_mmap2 | |
case SYS_mmap2 : return "mmap2"; | |
#endif | |
#ifdef SYS_mpx | |
case SYS_mpx : return "mpx"; | |
#endif | |
#ifdef SYS_nice | |
case SYS_nice : return "nice"; | |
#endif | |
#ifdef SYS_oldfstat | |
case SYS_oldfstat : return "oldfstat"; | |
#endif | |
#ifdef SYS_oldlstat | |
case SYS_oldlstat : return "oldlstat"; | |
#endif | |
#ifdef SYS_oldolduname | |
case SYS_oldolduname : return "oldolduname"; | |
#endif | |
#ifdef SYS_oldstat | |
case SYS_oldstat : return "oldstat"; | |
#endif | |
#ifdef SYS_olduname | |
case SYS_olduname : return "olduname"; | |
#endif | |
#ifdef SYS_prof | |
case SYS_prof : return "prof"; | |
#endif | |
#ifdef SYS_profil | |
case SYS_profil : return "profil"; | |
#endif | |
#ifdef SYS_readdir | |
case SYS_readdir : return "readdir"; | |
#endif | |
#ifdef SYS_sendfile64 | |
case SYS_sendfile64 : return "sendfile64"; | |
#endif | |
#ifdef SYS_setfsgid32 | |
case SYS_setfsgid32 : return "setfsgid32"; | |
#endif | |
#ifdef SYS_setfsuid32 | |
case SYS_setfsuid32 : return "setfsuid32"; | |
#endif | |
#ifdef SYS_setgid32 | |
case SYS_setgid32 : return "setgid32"; | |
#endif | |
#ifdef SYS_setgroups32 | |
case SYS_setgroups32 : return "setgroups32"; | |
#endif | |
#ifdef SYS_setregid32 | |
case SYS_setregid32 : return "setregid32"; | |
#endif | |
#ifdef SYS_setresgid32 | |
case SYS_setresgid32 : return "setresgid32"; | |
#endif | |
#ifdef SYS_setresuid32 | |
case SYS_setresuid32 : return "setresuid32"; | |
#endif | |
#ifdef SYS_setreuid32 | |
case SYS_setreuid32 : return "setreuid32"; | |
#endif | |
#ifdef SYS_setuid32 | |
case SYS_setuid32 : return "setuid32"; | |
#endif | |
#ifdef SYS_sgetmask | |
case SYS_sgetmask : return "sgetmask"; | |
#endif | |
#ifdef SYS_sigaction | |
case SYS_sigaction : return "sigaction"; | |
#endif | |
#ifdef SYS_signal | |
case SYS_signal : return "signal"; | |
#endif | |
#ifdef SYS_sigpending | |
case SYS_sigpending : return "sigpending"; | |
#endif | |
#ifdef SYS_sigprocmask | |
case SYS_sigprocmask : return "sigprocmask"; | |
#endif | |
#ifdef SYS_sigreturn | |
case SYS_sigreturn : return "sigreturn"; | |
#endif | |
#ifdef SYS_sigsuspend | |
case SYS_sigsuspend : return "sigsuspend"; | |
#endif | |
#ifdef SYS_socketcall | |
case SYS_socketcall : return "socketcall"; | |
#endif | |
#ifdef SYS_ssetmask | |
case SYS_ssetmask : return "ssetmask"; | |
#endif | |
#ifdef SYS_stat64 | |
case SYS_stat64 : return "stat64"; | |
#endif | |
#ifdef SYS_statfs64 | |
case SYS_statfs64 : return "statfs64"; | |
#endif | |
#ifdef SYS_stime | |
case SYS_stime : return "stime"; | |
#endif | |
#ifdef SYS_stty | |
case SYS_stty : return "stty"; | |
#endif | |
#ifdef SYS_truncate64 | |
case SYS_truncate64 : return "truncate64"; | |
#endif | |
#ifdef SYS_ugetrlimit | |
case SYS_ugetrlimit : return "ugetrlimit"; | |
#endif | |
#ifdef SYS_ulimit | |
case SYS_ulimit : return "ulimit"; | |
#endif | |
#ifdef SYS_umount | |
case SYS_umount : return "umount"; | |
#endif | |
#ifdef SYS_vm86 | |
case SYS_vm86 : return "vm86"; | |
#endif | |
#ifdef SYS_vm86old | |
case SYS_vm86old : return "vm86old"; | |
#endif | |
#ifdef SYS_waitpid | |
case SYS_waitpid : return "waitpid"; | |
#endif | |
default: | |
return "unknown"; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment