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

📄 defs.h

📁 linux进程跟踪的工具和源代码
💻 H
📖 第 1 页 / 共 2 页
字号:
	struct procfs_status status;	int pfd_reg;	int pfd_status;#endif};/* TCB flags */#define TCB_STARTUP	00001	/* We have just begun ptracing this process */#define TCB_INUSE	00002	/* This table entry is in use */#define TCB_INSYSCALL	00004	/* A system call is in progress */#define TCB_ATTACHED	00010	/* Process is not our own child */#define TCB_EXITING	00020	/* As far as we know, this process is exiting */#define TCB_SUSPENDED	00040	/* Process has done a wait(4), that can				   not be allowed to complete just now */#define TCB_BPTSET	00100	/* "Breakpoint" set after fork(2) */#define TCB_SIGTRAPPED	00200	/* Process wanted to block SIGTRAP */#define TCB_FOLLOWFORK	00400	/* Process should have forks followed */#define TCB_REPRINT	01000	/* We should reprint this syscall on exit */#ifdef LINUX#if defined(ALPHA) || defined(SPARC) || defined(POWERPC) || defined(HPPA)#define TCB_WAITEXECVE	02000	/* ignore SIGTRAP after exceve */#endif /* ALPHA */#endif /* LINUX *//* qualifier flags */#define QUAL_TRACE	0001	/* this system call should be traced */#define QUAL_ABBREV	0002	/* abbreviate the structures of this syscall */#define QUAL_VERBOSE	0004	/* decode the structures of this syscall */#define QUAL_RAW	0010	/* print all args in hex for this syscall */#define QUAL_SIGNAL	0020	/* report events with this signal */#define QUAL_FAULT	0040	/* report events with this fault */#define QUAL_READ	0100	/* dump data read on this file descriptor */#define QUAL_WRITE	0200	/* dump data written to this file descriptor */#define entering(tcp)	(!((tcp)->flags & TCB_INSYSCALL))#define exiting(tcp)	((tcp)->flags & TCB_INSYSCALL)#define syserror(tcp)	((tcp)->u_error != 0)#define verbose(tcp)	(qual_flags[(tcp)->scno] & QUAL_VERBOSE)#define abbrev(tcp)	(qual_flags[(tcp)->scno] & QUAL_ABBREV)#define waiting_parent(tcp) \		(tcp->parent && \		(tcp->parent->flags & TCB_SUSPENDED) && \		(tcp->parent->waitpid <= 0 || tcp->parent->waitpid == tcp->pid))struct xlat {	int val;	char *str;};/* Format of syscall return values */#define RVAL_DECIMAL	000	/* decimal format */#define RVAL_HEX	001	/* hex format */#define RVAL_OCTAL	002	/* octal format */#define RVAL_UDECIMAL	003	/* unsigned decimal format */#define RVAL_LDECIMAL	004	/* long decimal format */#define RVAL_LHEX	005	/* long hex format */#define RVAL_LOCTAL	006	/* long octal format */#define RVAL_LUDECIMAL	007	/* long unsigned decimal format */#define RVAL_MASK	007	/* mask for these values */#define RVAL_STR	010	/* Print `auxstr' field after return val */#define RVAL_NONE	020	/* Print nothing */#ifndef offsetof#define offsetof(type, member)	(((char *) &(((type *) NULL)->member)) - \				 ((char *) (type *) NULL))#endif /* !offsetof *//* get offset of member within a user struct */#define uoff(member)	offsetof(struct user, member)#define TRACE_FILE	001	/* Trace file-related syscalls. */#define TRACE_IPC	002	/* Trace IPC-related syscalls. */#define TRACE_NETWORK	004	/* Trace network-related syscalls. */#define TRACE_PROCESS	010	/* Trace process-related syscalls. */#define TRACE_SIGNAL	020	/* Trace signal-related syscalls. */extern struct tcb tcbtab[];extern int qual_flags[];extern int debug, followfork, followvfork;extern int rflag, tflag, dtime, cflag, xflag, qflag;extern int acolumn;extern char *outfname;extern int nprocs;extern int max_strlen;extern struct tcb *tcp_last;#ifdef __STDC__#define P(args) args#else#define P(args) ()#endifextern int set_personality P((int personality));extern char *xlookup P((struct xlat *, int));extern struct tcb *alloctcb P((int));extern void droptcb P((struct tcb *));extern void set_sortby P((char *));extern void set_overhead P((int));extern void qualify P((char *));extern void newoutf P((struct tcb *));extern int get_scno P((struct tcb *));extern int trace_syscall P((struct tcb *));extern void printxval P((struct xlat *, int, char *));extern int printargs P((struct tcb *));extern int addflags P((struct xlat *, int));extern int printflags P((struct xlat *, int));extern int umoven P((struct tcb *, long, int, char *));extern int umovestr P((struct tcb *, long, int, char *));extern int upeek P((int, long, long *));extern void dumpstr P((struct tcb *, long, int));extern void string_quote P((char *str));extern void printstr P((struct tcb *, long, int));extern void printnum P((struct tcb *, long, char *));extern void printpath P((struct tcb *, long));extern void printpathn P((struct tcb *, long, int));extern void printtv P((struct tcb *, long));extern void printsock P((struct tcb *, long, int));extern void printrusage P((struct tcb *, long));extern int clearbpt P((struct tcb *));extern int setbpt P((struct tcb *));extern int sigishandled P((struct tcb *, int));extern void printcall P((struct tcb *));extern char *signame P((int));extern void printsignal P((int));extern void printleader P((struct tcb *));extern void printtrailer P((struct tcb *));extern void tabto P((int));extern void call_summary P((FILE *));extern void fake_execve P((struct tcb *, char *, char *[], char *[]));extern void printtv32 P((struct tcb*, long));#ifdef LINUXextern int internal_clone P((struct tcb *));#endifextern int internal_fork P((struct tcb *));extern int internal_exec P((struct tcb *));extern int internal_wait P((struct tcb *));extern int internal_exit P((struct tcb *));extern char *ioctl_lookup P((long));extern int ioctl_decode P((struct tcb *, long, long));extern int term_ioctl P((struct tcb *, long, long));extern int sock_ioctl P((struct tcb *, long, long));extern int proc_ioctl P((struct tcb *, int, int));extern int stream_ioctl P((struct tcb *, int, int));extern void tv_tv P((struct timeval *, int, int));extern int tv_nz P((struct timeval *));extern int tv_cmp P((struct timeval *, struct timeval *));extern double tv_float P((struct timeval *));extern void tv_add P((struct timeval *, struct timeval *, struct timeval *));extern void tv_sub P((struct timeval *, struct timeval *, struct timeval *));extern void tv_mul P((struct timeval *, struct timeval *, int));extern void tv_div P((struct timeval *, struct timeval *, int));#ifdef SUNOS4extern int fixvfork P((struct tcb *));#endif#if !(defined(LINUX) && !defined(SPARC))extern long getrval2 P((struct tcb *));#endif#ifdef USE_PROCFSextern int proc_open P((struct tcb *tcp, int attaching));#endif#define umove(pid, addr, objp)	\	umoven((pid), (addr), sizeof *(objp), (char *) (objp))#ifdef __STDC__#ifdef __GNUC__extern void tprintf(const char *fmt, ...)	__attribute__ ((format (printf, 1, 2)));#elseextern void tprintf(const char *fmt, ...);#endif#elseextern void tprintf();#endif#ifndef HAVE_STRERRORconst char *strerror P((int));#endif#ifndef HAVE_STRSIGNALconst char *strsignal P((int));#endifextern int current_personality;struct sysent {	int	nargs;	int	sys_flags;	int	(*sys_func)();	char	*sys_name;};extern struct sysent *sysent;extern int nsyscalls;extern char **errnoent;extern int nerrnos;struct ioctlent {	char *doth;	char *symbol;	unsigned long code;};extern struct ioctlent *ioctlent;extern int nioctlent;extern char **signalent;extern int nsignals;extern struct ioctlent *ioctlent;extern int nioctlents;extern char **signalent;extern int nsignals;extern struct ioctlent ioctlent0[];extern int nioctlents0;extern char *signalent0[];extern int nsignals0;#if SUPPORTED_PERSONALITIES >= 2extern struct ioctlent ioctlent1[];extern int nioctlents1;extern char *signalent1[];extern int nsignals1;#endif /* SUPPORTED_PERSONALITIES >= 2 */#if SUPPORTED_PERSONALITIES >= 3extern struct ioctlent ioctlent2[];extern int nioctlents2;extern char *signalent2[];extern int nsignals2;#endif /* SUPPORTED_PERSONALITIES >= 3 */#if FREEBSD/* ARRGH!  off_t args are aligned on 64 bit boundaries! */#define ALIGN64(tcp,arg)						\do {									\	if (arg % 2)							\	    memmove (&tcp->u_arg[arg], &tcp->u_arg[arg + 1],		\		     (tcp->u_nargs - arg - 1) * sizeof tcp->u_arg[0]);	\} while (0)#else#define ALIGN64(tcp,arg) do { } while (0)#endif#if HAVE_LONG_LONG/* _l refers to the lower numbered u_arg, * _h refers to the higher numbered u_arg */#if HAVE_LITTLE_ENDIAN_LONG_LONG#define LONG_LONG(_l,_h) \    ((long long)((unsigned long long)(_l) | ((unsigned long long)(_h)<<32)))#else#define LONG_LONG(_l,_h) \    ((long long)((unsigned long long)(_h) | ((unsigned long long)(_l)<<32)))#endif#endif

⌨️ 快捷键说明

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