C++程序  |  19行  |  466 B

#ifndef PTRACE_SET_SYSCALL
# define PTRACE_SET_SYSCALL 23
#endif
/*
 * PTRACE_SET_SYSCALL is supported by linux kernel
 * starting with commit v2.6.16-rc1~107^2
 */

static int
arch_set_scno(struct tcb *tcp, kernel_ulong_t scno)
{
	unsigned int n = (uint16_t) scno;
	int rc = ptrace(PTRACE_SET_SYSCALL, tcp->pid, NULL, (unsigned long) n);
	if (rc && errno != ESRCH)
		perror_msg("arch_set_scno: PTRACE_SET_SYSCALL pid:%d scno:%#x",
			   tcp->pid, n);
	return rc;
}