⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ptrace.c

📁 linux 内核源代码
💻 C
📖 第 1 页 / 共 2 页
字号:
	[44]	= { "prof" },	[45]	= { "brk",		0x000004	},	[46]	= { "setgid",		0x000001	},	[47]	= { "getgid",		0xffffff	},	[48]	= { "signal",		0x000041	},	[49]	= { "geteuid",		0xffffff	},	[50]	= { "getegid",		0xffffff	},	[51]	= { "acct",		0x000005	},	[52]	= { "umount2",		0x000035	},	[53]	= { "lock" },	[54]	= { "ioctl",		0x000331	},	[55]	= { "fcntl",		0x000331	},	[56]	= { "mpx" },	[57]	= { "setpgid",		0x000011	},	[58]	= { "ulimit" },	[60]	= { "umask",		0x000002	},	[61]	= { "chroot",		0x000005	},	[62]	= { "ustat",		0x000043	},	[63]	= { "dup2",		0x000011	},	[64]	= { "getppid",		0xffffff	},	[65]	= { "getpgrp",		0xffffff	},	[66]	= { "setsid",		0xffffff	},	[67]	= { "sigaction" },	[68]	= { "sgetmask" },	[69]	= { "ssetmask" },	[70]	= { "setreuid" },	[71]	= { "setregid" },	[72]	= { "sigsuspend" },	[73]	= { "sigpending" },	[74]	= { "sethostname" },	[75]	= { "setrlimit" },	[76]	= { "getrlimit" },	[77]	= { "getrusage" },	[78]	= { "gettimeofday" },	[79]	= { "settimeofday" },	[80]	= { "getgroups" },	[81]	= { "setgroups" },	[82]	= { "select" },	[83]	= { "symlink" },	[84]	= { "oldlstat" },	[85]	= { "readlink" },	[86]	= { "uselib" },	[87]	= { "swapon" },	[88]	= { "reboot" },	[89]	= { "readdir" },	[91]	= { "munmap",		0x000034	},	[92]	= { "truncate" },	[93]	= { "ftruncate" },	[94]	= { "fchmod" },	[95]	= { "fchown" },	[96]	= { "getpriority" },	[97]	= { "setpriority" },	[99]	= { "statfs" },	[100]	= { "fstatfs" },	[102]	= { "socketcall" },	[103]	= { "syslog" },	[104]	= { "setitimer" },	[105]	= { "getitimer" },	[106]	= { "stat" },	[107]	= { "lstat" },	[108]	= { "fstat" },	[111]	= { "vhangup" },	[114]	= { "wait4" },	[115]	= { "swapoff" },	[116]	= { "sysinfo" },	[117]	= { "ipc" },	[118]	= { "fsync" },	[119]	= { "sigreturn" },	[120]	= { "clone" },	[121]	= { "setdomainname" },	[122]	= { "uname" },	[123]	= { "modify_ldt" },	[123]	= { "cacheflush" },	[124]	= { "adjtimex" },	[125]	= { "mprotect" },	[126]	= { "sigprocmask" },	[127]	= { "create_module" },	[128]	= { "init_module" },	[129]	= { "delete_module" },	[130]	= { "get_kernel_syms" },	[131]	= { "quotactl" },	[132]	= { "getpgid" },	[133]	= { "fchdir" },	[134]	= { "bdflush" },	[135]	= { "sysfs" },	[136]	= { "personality" },	[137]	= { "afs_syscall" },	[138]	= { "setfsuid" },	[139]	= { "setfsgid" },	[140]	= { "_llseek",			0x014331	},	[141]	= { "getdents" },	[142]	= { "_newselect",		0x000141	},	[143]	= { "flock" },	[144]	= { "msync" },	[145]	= { "readv" },	[146]	= { "writev" },	[147]	= { "getsid",			0x000001	},	[148]	= { "fdatasync",		0x000001	},	[149]	= { "_sysctl",			0x000004	},	[150]	= { "mlock" },	[151]	= { "munlock" },	[152]	= { "mlockall" },	[153]	= { "munlockall" },	[154]	= { "sched_setparam" },	[155]	= { "sched_getparam" },	[156]	= { "sched_setscheduler" },	[157]	= { "sched_getscheduler" },	[158]	= { "sched_yield" },	[159]	= { "sched_get_priority_max" },	[160]	= { "sched_get_priority_min" },	[161]	= { "sched_rr_get_interval" },	[162]	= { "nanosleep",		0x000044	},	[163]	= { "mremap" },	[164]	= { "setresuid" },	[165]	= { "getresuid" },	[166]	= { "vm86" },	[167]	= { "query_module" },	[168]	= { "poll" },	[169]	= { "nfsservctl" },	[170]	= { "setresgid" },	[171]	= { "getresgid" },	[172]	= { "prctl",			0x333331	},	[173]	= { "rt_sigreturn",		0xffffff	},	[174]	= { "rt_sigaction",		0x001441	},	[175]	= { "rt_sigprocmask",		0x001441	},	[176]	= { "rt_sigpending",		0x000014	},	[177]	= { "rt_sigtimedwait",		0x001444	},	[178]	= { "rt_sigqueueinfo",		0x000411	},	[179]	= { "rt_sigsuspend",		0x000014	},	[180]	= { "pread",			0x003341	},	[181]	= { "pwrite",			0x003341	},	[182]	= { "chown",			0x000115	},	[183]	= { "getcwd" },	[184]	= { "capget" },	[185]	= { "capset" },	[186]	= { "sigaltstack" },	[187]	= { "sendfile" },	[188]	= { "getpmsg" },	[189]	= { "putpmsg" },	[190]	= { "vfork",			0xffffff	},	[191]	= { "ugetrlimit" },	[192]	= { "mmap2",			0x313314	},	[193]	= { "truncate64" },	[194]	= { "ftruncate64" },	[195]	= { "stat64",			0x000045	},	[196]	= { "lstat64",			0x000045	},	[197]	= { "fstat64",			0x000041	},	[198]	= { "lchown32" },	[199]	= { "getuid32",			0xffffff	},	[200]	= { "getgid32",			0xffffff	},	[201]	= { "geteuid32",		0xffffff	},	[202]	= { "getegid32",		0xffffff	},	[203]	= { "setreuid32" },	[204]	= { "setregid32" },	[205]	= { "getgroups32" },	[206]	= { "setgroups32" },	[207]	= { "fchown32" },	[208]	= { "setresuid32" },	[209]	= { "getresuid32" },	[210]	= { "setresgid32" },	[211]	= { "getresgid32" },	[212]	= { "chown32" },	[213]	= { "setuid32" },	[214]	= { "setgid32" },	[215]	= { "setfsuid32" },	[216]	= { "setfsgid32" },	[217]	= { "pivot_root" },	[218]	= { "mincore" },	[219]	= { "madvise" },	[220]	= { "getdents64" },	[221]	= { "fcntl64" },	[223]	= { "security" },	[224]	= { "gettid" },	[225]	= { "readahead" },	[226]	= { "setxattr" },	[227]	= { "lsetxattr" },	[228]	= { "fsetxattr" },	[229]	= { "getxattr" },	[230]	= { "lgetxattr" },	[231]	= { "fgetxattr" },	[232]	= { "listxattr" },	[233]	= { "llistxattr" },	[234]	= { "flistxattr" },	[235]	= { "removexattr" },	[236]	= { "lremovexattr" },	[237]	= { "fremovexattr" },	[238]	= { "tkill" },	[239]	= { "sendfile64" },	[240]	= { "futex" },	[241]	= { "sched_setaffinity" },	[242]	= { "sched_getaffinity" },	[243]	= { "set_thread_area" },	[244]	= { "get_thread_area" },	[245]	= { "io_setup" },	[246]	= { "io_destroy" },	[247]	= { "io_getevents" },	[248]	= { "io_submit" },	[249]	= { "io_cancel" },	[250]	= { "fadvise64" },	[252]	= { "exit_group",		0x000001	},	[253]	= { "lookup_dcookie" },	[254]	= { "epoll_create" },	[255]	= { "epoll_ctl" },	[256]	= { "epoll_wait" },	[257]	= { "remap_file_pages" },	[258]	= { "set_tid_address" },	[259]	= { "timer_create" },	[260]	= { "timer_settime" },	[261]	= { "timer_gettime" },	[262]	= { "timer_getoverrun" },	[263]	= { "timer_delete" },	[264]	= { "clock_settime" },	[265]	= { "clock_gettime" },	[266]	= { "clock_getres" },	[267]	= { "clock_nanosleep" },	[268]	= { "statfs64" },	[269]	= { "fstatfs64" },	[270]	= { "tgkill" },	[271]	= { "utimes" },	[272]	= { "fadvise64_64" },	[273]	= { "vserver" },	[274]	= { "mbind" },	[275]	= { "get_mempolicy" },	[276]	= { "set_mempolicy" },	[277]	= { "mq_open" },	[278]	= { "mq_unlink" },	[279]	= { "mq_timedsend" },	[280]	= { "mq_timedreceive" },	[281]	= { "mq_notify" },	[282]	= { "mq_getsetattr" },	[283]	= { "sys_kexec_load" },};asmlinkage void do_syscall_trace(int leaving){#if 0	unsigned long *argp;	const char *name;	unsigned argmask;	char buffer[16];	if (!kstrace)		return;	if (!current->mm)		return;	if (__frame->gr7 == __NR_close)		return;#if 0	if (__frame->gr7 != __NR_mmap2 &&	    __frame->gr7 != __NR_vfork &&	    __frame->gr7 != __NR_execve &&	    __frame->gr7 != __NR_exit)		return;#endif	argmask = 0;	name = NULL;	if (__frame->gr7 < NR_syscalls) {		name = __syscall_name_table[__frame->gr7].name;		argmask = __syscall_name_table[__frame->gr7].argmask;	}	if (!name) {		sprintf(buffer, "sys_%lx", __frame->gr7);		name = buffer;	}	if (!leaving) {		if (!argmask) {			printk(KERN_CRIT "[%d] %s(%lx,%lx,%lx,%lx,%lx,%lx)\n",			       current->pid,			       name,			       __frame->gr8,			       __frame->gr9,			       __frame->gr10,			       __frame->gr11,			       __frame->gr12,			       __frame->gr13);		}		else if (argmask == 0xffffff) {			printk(KERN_CRIT "[%d] %s()\n",			       current->pid,			       name);		}		else {			printk(KERN_CRIT "[%d] %s(",			       current->pid,			       name);			argp = &__frame->gr8;			do {				switch (argmask & 0xf) {				case 1:					printk("%ld", (long) *argp);					break;				case 2:					printk("%lo", *argp);					break;				case 3:					printk("%lx", *argp);					break;				case 4:					printk("%p", (void *) *argp);					break;				case 5:					printk("\"%s\"", (char *) *argp);					break;				}				argp++;				argmask >>= 4;				if (argmask)					printk(",");			} while (argmask);			printk(")\n");		}	}	else {		if ((int)__frame->gr8 > -4096 && (int)__frame->gr8 < 4096)			printk(KERN_CRIT "[%d] %s() = %ld\n", current->pid, name, __frame->gr8);		else			printk(KERN_CRIT "[%d] %s() = %lx\n", current->pid, name, __frame->gr8);	}	return;#endif	if (!test_thread_flag(TIF_SYSCALL_TRACE))		return;	if (!(current->ptrace & PT_PTRACED))		return;	/* we need to indicate entry or exit to strace */	if (leaving)		__frame->__status |= REG__STATUS_SYSC_EXIT;	else		__frame->__status |= REG__STATUS_SYSC_ENTRY;	ptrace_notify(SIGTRAP);	/*	 * this isn't the same as continuing with a signal, but it will do	 * for normal use.  strace only continues with a signal if the	 * stopping signal is not SIGTRAP.  -brl	 */	if (current->exit_code) {		send_sig(current->exit_code, current, 1);		current->exit_code = 0;	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -