您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ umove_or_printaddr函数代码示例

51自学网 2021-06-03 09:09:10
  C++
这篇教程C++ umove_or_printaddr函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中umove_or_printaddr函数的典型用法代码示例。如果您正苦于以下问题:C++ umove_or_printaddr函数的具体用法?C++ umove_or_printaddr怎么用?C++ umove_or_printaddr使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了umove_or_printaddr函数的26个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: decode_netlink_selinux

booldecode_netlink_selinux(struct tcb *const tcp,		       const struct nlmsghdr *const nlmsghdr,		       const kernel_ulong_t addr,		       const unsigned int len){	switch (nlmsghdr->nlmsg_type) {	case SELNL_MSG_SETENFORCE: {		struct selnl_msg_setenforce msg;		if (len < sizeof(msg))			printstr_ex(tcp, addr, len, QUOTE_FORCE_HEX);		else if (!umove_or_printaddr(tcp, addr, &msg)) {			PRINT_FIELD_D("{", msg, val);			tprints("}");		}		break;	}	case SELNL_MSG_POLICYLOAD: {		struct selnl_msg_policyload msg;		if (len < sizeof(msg))			printstr_ex(tcp, addr, len, QUOTE_FORCE_HEX);		else if (!umove_or_printaddr(tcp, addr, &msg)) {			PRINT_FIELD_U("{", msg, seqno);			tprints("}");		}		break;	}	default:		return false;	}	return true;}
开发者ID:MIPS,项目名称:external-strace,代码行数:35,


示例2: print_seccomp_filter

voidprint_seccomp_filter(struct tcb *tcp, unsigned long addr){#if SUPPORTED_PERSONALITIES > 1 && SIZEOF_LONG > 4	if (current_wordsize == 4) {		struct {			unsigned short len;			uint32_t filter;		} fprog;		if (!umove_or_printaddr(tcp, addr, &fprog))			decode_fprog(tcp, fprog.len, fprog.filter);	} else {#endif		struct {			unsigned short len;			unsigned long filter;		} fprog;		if (!umove_or_printaddr(tcp, addr, &fprog))			decode_fprog(tcp, fprog.len, fprog.filter);#if SUPPORTED_PERSONALITIES > 1 && SIZEOF_LONG > 4	}#endif}
开发者ID:zwz94,项目名称:platform_external_strace,代码行数:25,


示例3: decode_old_sigaction

static voiddecode_old_sigaction(struct tcb *tcp, long addr){	struct old_sigaction sa;#if SUPPORTED_PERSONALITIES > 1 && SIZEOF_LONG > 4	if (current_wordsize != sizeof(sa.__sa_handler) && current_wordsize == 4) {		struct old_sigaction32 sa32;		if (umove_or_printaddr(tcp, addr, &sa32))			return;		memset(&sa, 0, sizeof(sa));		sa.__sa_handler = (void*)(uintptr_t)sa32.__sa_handler;		sa.sa_flags = sa32.sa_flags;#if HAVE_SA_RESTORER && defined SA_RESTORER		sa.sa_restorer = (void*)(uintptr_t)sa32.sa_restorer;#endif		sa.sa_mask = sa32.sa_mask;	} else#endif	if (umove_or_printaddr(tcp, addr, &sa))		return;	/* Architectures using function pointers, like	 * hppa, may need to manipulate the function pointer	 * to compute the result of a comparison. However,	 * the __sa_handler function pointer exists only in	 * the address space of the traced process, and can't	 * be manipulated by strace. In order to prevent the	 * compiler from generating code to manipulate	 * __sa_handler we cast the function pointers to long. */	tprints("{");	if ((long)sa.__sa_handler == (long)SIG_ERR)		tprints("SIG_ERR");	else if ((long)sa.__sa_handler == (long)SIG_DFL)		tprints("SIG_DFL");	else if ((long)sa.__sa_handler == (long)SIG_IGN)		tprints("SIG_IGN");	else		printaddr((long) sa.__sa_handler);	tprints(", ");#ifdef MIPS	tprintsigmask_addr("", sa.sa_mask);#else	tprintsigmask_val("", sa.sa_mask);#endif	tprints(", ");	printflags(sigact_flags, sa.sa_flags, "SA_???");#if HAVE_SA_RESTORER && defined SA_RESTORER	if (sa.sa_flags & SA_RESTORER)		tprintf(", %p", sa.sa_restorer);#endif	tprints("}");}
开发者ID:yunchih,项目名称:strace,代码行数:55,


示例4: decode_new_sigaction

static voiddecode_new_sigaction(struct tcb *const tcp, const kernel_ulong_t addr){	struct new_sigaction sa;#ifndef current_wordsize	if (current_wordsize < sizeof(sa.sa_handler__)) {		struct new_sigaction32 sa32;		if (umove_or_printaddr(tcp, addr, &sa32))			return;		memset(&sa, 0, sizeof(sa));		sa.sa_handler__ = sa32.sa_handler__;		sa.sa_flags     = sa32.sa_flags;#if HAVE_SA_RESTORER && defined SA_RESTORER		sa.sa_restorer  = sa32.sa_restorer;#endif		/* Kernel treats sa_mask as an array of longs.		 * For 32-bit process, "long" is uint32_t, thus, for example,		 * 32th bit in sa_mask will end up as bit 0 in sa_mask[1].		 * But for (64-bit) kernel, 32th bit in sa_mask is		 * 32th bit in 0th (64-bit) long!		 * For little-endian, it's the same.		 * For big-endian, we swap 32-bit words.		 */		sa.sa_mask[0] = ULONG_LONG(sa32.sa_mask[0], sa32.sa_mask[1]);	} else#endif	if (umove_or_printaddr(tcp, addr, &sa))		return;	tprints("{sa_handler=");	print_sa_handler(sa.sa_handler__);	tprints(", sa_mask=");	/*	 * Sigset size is in tcp->u_arg[4] (SPARC)	 * or in tcp->u_arg[3] (all other),	 * but kernel won't handle sys_rt_sigaction	 * with wrong sigset size (just returns EINVAL instead).	 * We just fetch the right size, which is NSIG_BYTES.	 */	tprintsigmask_val("", sa.sa_mask);	tprints(", sa_flags=");	printflags(sigact_flags, sa.sa_flags, "SA_???");#if HAVE_SA_RESTORER && defined SA_RESTORER	if (sa.sa_flags & SA_RESTORER) {		tprints(", sa_restorer=");		printaddr(sa.sa_restorer);	}#endif	tprints("}");}
开发者ID:lineprinter,项目名称:strace,代码行数:54,


示例5: MPERS_PRINTER_DECL

MPERS_PRINTER_DECL(bool, fetch_struct_stat,                   struct tcb *tcp, const unsigned long addr,                   struct strace_stat *const dst){#ifdef HAVE_STRUCT_STAT    struct_stat buf;    if (umove_or_printaddr(tcp, addr, &buf))        return false;    dst->dev = zero_extend_signed_to_ull(buf.st_dev);    dst->ino = zero_extend_signed_to_ull(buf.st_ino);    dst->rdev = zero_extend_signed_to_ull(buf.st_rdev);    dst->size = zero_extend_signed_to_ull(buf.st_size);    dst->blocks = zero_extend_signed_to_ull(buf.st_blocks);    dst->blksize = zero_extend_signed_to_ull(buf.st_blksize);    dst->mode = zero_extend_signed_to_ull(buf.st_mode);    dst->nlink = zero_extend_signed_to_ull(buf.st_nlink);    dst->uid = zero_extend_signed_to_ull(buf.st_uid);    dst->gid = zero_extend_signed_to_ull(buf.st_gid);    dst->atime = sign_extend_unsigned_to_ll(buf.st_atime);    dst->ctime = sign_extend_unsigned_to_ll(buf.st_ctime);    dst->mtime = sign_extend_unsigned_to_ll(buf.st_mtime);    dst->atime_nsec = TIME_NSEC(buf.st_atime_nsec);    dst->ctime_nsec = TIME_NSEC(buf.st_ctime_nsec);    dst->mtime_nsec = TIME_NSEC(buf.st_mtime_nsec);    return true;#else /* !HAVE_STRUCT_STAT */    printaddr(addr);    return false;#endif}
开发者ID:android,项目名称:platform_external_strace,代码行数:31,


示例6: decode_termios

static voiddecode_termios(struct tcb *const tcp, const kernel_ulong_t addr){	struct termios tios;	tprints(", ");	if (umove_or_printaddr(tcp, addr, &tios))		return;	if (abbrev(tcp)) {		tprints("{");		printxval(baud_options, tios.c_cflag & CBAUD, "B???");		tprintf(" %sopost %sisig %sicanon %secho ...}",			(tios.c_oflag & OPOST) ? "" : "-",			(tios.c_lflag & ISIG) ? "" : "-",			(tios.c_lflag & ICANON) ? "" : "-",			(tios.c_lflag & ECHO) ? "" : "-");		return;	}	tprintf("{c_iflags=%#lx, c_oflags=%#lx, ",		(long) tios.c_iflag, (long) tios.c_oflag);	tprintf("c_cflags=%#lx, c_lflags=%#lx, ",		(long) tios.c_cflag, (long) tios.c_lflag);	tprintf("c_line=%u, ", tios.c_line);	if (!(tios.c_lflag & ICANON))		tprintf("c_cc[VMIN]=%d, c_cc[VTIME]=%d, ",			tios.c_cc[VMIN], tios.c_cc[VTIME]);	tprints("c_cc=");	print_quoted_string((char *) tios.c_cc, NCCS, QUOTE_FORCE_HEX);	tprints("}");}
开发者ID:MIPS,项目名称:external-strace,代码行数:30,


示例7: decode_nand_ecclayout_user

static voiddecode_nand_ecclayout_user(struct tcb *const tcp, const kernel_ulong_t addr){	struct nand_ecclayout_user nlay;	unsigned int i;	tprints(", ");	if (umove_or_printaddr(tcp, addr, &nlay))		return;	tprintf("{eccbytes=%#x, eccpos={", nlay.eccbytes);	for (i = 0; i < ARRAY_SIZE(nlay.eccpos); ++i) {		if (i)			tprints(", ");		tprintf("%#x", nlay.eccpos[i]);	}	tprintf("}, oobavail=%#x, oobfree={", nlay.oobavail);	for (i = 0; i < ARRAY_SIZE(nlay.oobfree); ++i) {		if (i)			tprints(", ");		tprintf("{offset=%#x, length=%#x}",			nlay.oobfree[i].offset, nlay.oobfree[i].length);	}	tprints("}");}
开发者ID:masatake,项目名称:strace,代码行数:25,


示例8: decode_nand_oobinfo

static voiddecode_nand_oobinfo(struct tcb *const tcp, const kernel_ulong_t addr){	struct nand_oobinfo ninfo;	unsigned int i, j;	tprints(", ");	if (umove_or_printaddr(tcp, addr, &ninfo))		return;	tprints("{useecc=");	printxval(mtd_nandecc_options, ninfo.useecc, "MTD_NANDECC_???");	tprintf(", eccbytes=%#x", ninfo.eccbytes);	tprints(", oobfree={");	for (i = 0; i < ARRAY_SIZE(ninfo.oobfree); ++i) {		if (i)			tprints("}, ");		tprints("{");		for (j = 0; j < ARRAY_SIZE(ninfo.oobfree[0]); ++j) {			if (j)				tprints(", ");			tprintf("%#x", ninfo.oobfree[i][j]);		}	}	tprints("}}, eccpos={");	for (i = 0; i < ARRAY_SIZE(ninfo.eccpos); ++i) {		if (i)			tprints(", ");		tprintf("%#x", ninfo.eccpos[i]);	}	tprints("}");}
开发者ID:masatake,项目名称:strace,代码行数:35,


示例9: MPERS_PRINTER_DECL

MPERS_PRINTER_DECL(bool, fetch_struct_quotastat, struct tcb *const tcp,		   const kernel_ulong_t data, void *p){	struct xfs_dqstats *dq = p;	struct_xfs_dqstats dqstat;	if (umove_or_printaddr(tcp, data, &dqstat))		return false;	dq->qs_version = dqstat.qs_version;	dq->qs_flags = dqstat.qs_flags;	dq->qs_pad = dqstat.qs_pad;	dq->qs_uquota.qfs_ino = dqstat.qs_uquota.qfs_ino;	dq->qs_uquota.qfs_nblks = dqstat.qs_uquota.qfs_nblks;	dq->qs_uquota.qfs_nextents = dqstat.qs_uquota.qfs_nextents;	dq->qs_gquota.qfs_ino = dqstat.qs_gquota.qfs_ino;	dq->qs_gquota.qfs_nblks = dqstat.qs_gquota.qfs_nblks;	dq->qs_gquota.qfs_nextents = dqstat.qs_gquota.qfs_nextents;	dq->qs_incoredqs = dqstat.qs_incoredqs;	dq->qs_btimelimit = dqstat.qs_btimelimit;	dq->qs_itimelimit = dqstat.qs_itimelimit;	dq->qs_rtbtimelimit = dqstat.qs_rtbtimelimit;	dq->qs_bwarnlimit = dqstat.qs_bwarnlimit;	dq->qs_iwarnlimit = dqstat.qs_iwarnlimit;	return true;}
开发者ID:android,项目名称:platform_external_strace,代码行数:26,


示例10: print_old_dirent

static voidprint_old_dirent(struct tcb *tcp, long addr){#ifdef SH64	typedef struct kernel_dirent old_dirent_t;#else	typedef struct {		uint32_t	d_ino;		uint32_t	d_off;		unsigned short  d_reclen;		char            d_name[1];	} old_dirent_t;#endif	old_dirent_t d;	if (umove_or_printaddr(tcp, addr, &d))		return;	tprintf("{d_ino=%lu, d_off=%lu, d_reclen=%u, d_name=",		(unsigned long) d.d_ino, (unsigned long) d.d_off, d.d_reclen);	if (d.d_reclen > D_NAME_LEN_MAX)		d.d_reclen = D_NAME_LEN_MAX;	printpathn(tcp, addr + offsetof(old_dirent_t, d_name), d.d_reclen);	tprints("}");}
开发者ID:zwz94,项目名称:platform_external_strace,代码行数:25,


示例11: MPERS_PRINTER_DECL

MPERS_PRINTER_DECL(int, print_timex)(struct tcb *tcp, const long addr){	struct_timex tx;	if (umove_or_printaddr(tcp, addr, &tx))		return -1;	tprints("{modes=");	printflags(adjtimex_modes, tx.modes, "ADJ_???");	tprintf(", offset=%jd, freq=%jd, maxerror=%ju, esterror=%ju, status=",		(intmax_t) tx.offset, (intmax_t) tx.freq,		(uintmax_t) tx.maxerror, (uintmax_t) tx.esterror);	printflags(adjtimex_status, tx.status, "STA_???");	tprintf(", constant=%jd, precision=%ju, tolerance=%jd",		(intmax_t) tx.constant, (uintmax_t) tx.precision,		(intmax_t) tx.tolerance);	tprintf(", time={%jd, %jd}",		(intmax_t) tx.time.tv_sec, (intmax_t) tx.time.tv_usec);	tprintf(", tick=%jd, ppsfreq=%jd, jitter=%jd",		(intmax_t) tx.tick, (intmax_t) tx.ppsfreq, (intmax_t) tx.jitter);	tprintf(", shift=%d, stabil=%jd, jitcnt=%jd",		tx.shift, (intmax_t) tx.stabil, (intmax_t) tx.jitcnt);	tprintf(", calcnt=%jd, errcnt=%jd, stbcnt=%jd",		(intmax_t) tx.calcnt, (intmax_t) tx.errcnt, (intmax_t) tx.stbcnt);#ifdef HAVE_STRUCT_TIMEX_TAI	tprintf(", tai=%d", tx.tai);#endif	tprints("}");	return 0;}
开发者ID:3125788,项目名称:platform_external_strace,代码行数:30,


示例12: decode_tc_sizespec

static booldecode_tc_sizespec(struct tcb *const tcp,		   const kernel_ulong_t addr,		   const unsigned int len,		   const void *const opaque_data){#ifdef HAVE_STRUCT_TC_SIZESPEC	struct tc_sizespec s;	if (len < sizeof(s))		return false;	else if (!umove_or_printaddr(tcp, addr, &s)) {		PRINT_FIELD_U("{", s, cell_log);		PRINT_FIELD_U(", ", s, size_log);		PRINT_FIELD_D(", ", s, cell_align);		PRINT_FIELD_D(", ", s, overhead);		PRINT_FIELD_U(", ", s, linklayer);		PRINT_FIELD_U(", ", s, mpu);		PRINT_FIELD_U(", ", s, mtu);		PRINT_FIELD_U(", ", s, tsize);		tprints("}");	}	return true;#else	return false;#endif}
开发者ID:lineprinter,项目名称:strace,代码行数:28,


示例13: MPERS_PRINTER_DECL

MPERS_PRINTER_DECL(int, decode_sg_req_info,		   struct tcb *const tcp, const kernel_ulong_t arg){	struct_sg_req_info info;	if (entering(tcp))		return 0;	tprints(", ");	if (!umove_or_printaddr(tcp, arg, &info)) {		tprintf("{req_state=%hhd"			", orphan=%hhd"			", sg_io_owned=%hhd"			", problem=%hhd"			", pack_id=%d"			", usr_ptr=",			info.req_state,			info.orphan,			info.sg_io_owned,			info.problem,			info.pack_id);		printaddr(ptr_to_kulong(info.usr_ptr));		tprintf(", duration=%u}", info.duration);	}	return RVAL_IOCTL_DECODED;}
开发者ID:MIPS,项目名称:external-strace,代码行数:27,


示例14: decode_gnet_stats_queue

static booldecode_gnet_stats_queue(struct tcb *const tcp,			const kernel_ulong_t addr,			const unsigned int len,			const void *const opaque_data){#ifdef HAVE_STRUCT_GNET_STATS_QUEUE	struct gnet_stats_queue qstats;	if (len < sizeof(qstats))		return false;	else if (!umove_or_printaddr(tcp, addr, &qstats)) {		PRINT_FIELD_U("{", qstats, qlen);		PRINT_FIELD_U(", ", qstats, backlog);		PRINT_FIELD_U(", ", qstats, drops);		PRINT_FIELD_U(", ", qstats, requeues);		PRINT_FIELD_U(", ", qstats, overlimits);		tprints("}");	}	return true;#else	return false;#endif}
开发者ID:lineprinter,项目名称:strace,代码行数:25,


示例15: decode_inet_diag_hostcond

static voiddecode_inet_diag_hostcond(struct tcb *const tcp,			  const kernel_ulong_t addr,			  const unsigned int len){	struct inet_diag_hostcond cond;	if (len < sizeof(cond)) {		printstr_ex(tcp, addr, len, QUOTE_FORCE_HEX);		return;	}	if (umove_or_printaddr(tcp, addr, &cond))		return;	PRINT_FIELD_XVAL("{", cond, family, addrfams, "AF_???");	PRINT_FIELD_U(", ", cond, prefix_len);	PRINT_FIELD_U(", ", cond, port);	if (len > sizeof(cond)) {		tprints(", ");		decode_inet_addr(tcp, addr + sizeof(cond),				 len - sizeof(cond), cond.family, "addr");	}	tprints("}");}
开发者ID:MIPS,项目名称:external-strace,代码行数:25,


示例16: MPERS_PRINTER_DECL

MPERS_PRINTER_DECL(int, hdio_ioctl, struct tcb *tcp,		   const unsigned int code, const long arg){	switch (code) {	case HDIO_GETGEO:		if (entering(tcp))			return 0;		else {			struct_hd_geometry geo;			tprints(", ");			if (!umove_or_printaddr(tcp, arg, &geo))				tprintf("{heads=%u, sectors=%u, "					"cylinders=%hu, start=%lu}",					(unsigned) geo.heads,					(unsigned) geo.sectors,					geo.cylinders,					(unsigned long) geo.start);		}		break;	default:		return RVAL_DECODED;	}	return RVAL_DECODED | 1;}
开发者ID:name2rnd,项目名称:strace,代码行数:26,


示例17: print_mreq6

static voidprint_mreq6(struct tcb *tcp, long addr, unsigned int len){	struct ipv6_mreq mreq;	if (len < sizeof(mreq))		goto fail;	if (umove_or_printaddr(tcp, addr, &mreq))		return;#ifdef HAVE_INET_NTOP	const struct in6_addr *in6 = &mreq.ipv6mr_multiaddr;	char address[INET6_ADDRSTRLEN];	if (!inet_ntop(AF_INET6, in6, address, sizeof(address)))		goto fail;	tprints("{ipv6mr_multiaddr=inet_pton(");	print_quoted_string(address, sizeof(address), QUOTE_0_TERMINATED);	tprints("), ipv6mr_interface=");	print_ifindex(mreq.ipv6mr_interface);	tprints("}");	return;#endif /* HAVE_INET_NTOP */fail:	printstr(tcp, addr, len);}
开发者ID:3125788,项目名称:platform_external_strace,代码行数:29,


示例18: decode_inet_diag_bc_op

static booldecode_inet_diag_bc_op(struct tcb *const tcp,		       const kernel_ulong_t addr,		       const unsigned int len,		       const void *const opaque_data){	struct inet_diag_bc_op op;	if (len < sizeof(op))		return false;	if (umove_or_printaddr(tcp, addr, &op))		return true;	if (len > sizeof(op))		tprints("{");	print_inet_diag_bc_op(&op);	if (len > sizeof(op)) {		tprints(", ");		decode_bytecode_data(tcp, addr + sizeof(op),				     len - sizeof(op), op.code);		tprints("}");	}	return true;}
开发者ID:MIPS,项目名称:external-strace,代码行数:27,


示例19: printwaitn

static intprintwaitn(struct tcb *tcp, void (*const print_rusage)(struct tcb *, long)){	if (entering(tcp)) {		/* On Linux, kernel-side pid_t is typedef'ed to int		 * on all arches. Also, glibc-2.8 truncates wait3 and wait4		 * pid argument to int on 64bit arches, producing,		 * for example, wait4(4294967295, ...) instead of -1		 * in strace. We have to use int here, not long.		 */		int pid = tcp->u_arg[0];		tprintf("%d, ", pid);	} else {		int status;		/* status */		if (tcp->u_rval == 0)			printaddr(tcp->u_arg[1]);		else if (!umove_or_printaddr(tcp, tcp->u_arg[1], &status))			printstatus(status);		/* options */		tprints(", ");		printflags(wait4_options, tcp->u_arg[2], "W???");		if (print_rusage) {			/* usage */			tprints(", ");			if (tcp->u_rval > 0)				print_rusage(tcp, tcp->u_arg[3]);			else				printaddr(tcp->u_arg[3]);		}	}	return 0;}
开发者ID:Fox-Heracles,项目名称:platform_external_strace,代码行数:34,


示例20: btrfs_print_qgroup_inherit

static voidbtrfs_print_qgroup_inherit(struct tcb *tcp, const uint64_t qgi_addr){	struct btrfs_qgroup_inherit inherit;	if (umove_or_printaddr(tcp, qgi_addr, &inherit))		return;	tprintf("{flags=");	printflags64(btrfs_qgroup_inherit_flags, inherit.flags,		     "BTRFS_QGROUP_INHERIT_???");	tprintf(", num_qgroups=%" PRI__u64 ", num_ref_copies=%" PRI__u64		", num_excl_copies=%" PRI__u64 ", lim=",		inherit.num_qgroups, inherit.num_ref_copies,		inherit.num_excl_copies);	btrfs_print_qgroup_limit(&inherit.lim);	tprints(", qgroups=");	if (abbrev(tcp)) {		tprints("...");	} else {		uint64_t record;		print_array(tcp, qgi_addr + offsetof(typeof(inherit), qgroups),			    inherit.num_qgroups, &record, sizeof(record),			    umoven_or_printaddr, print_uint64, 0);	}	tprints("}");}
开发者ID:yunchih,项目名称:strace,代码行数:30,


示例21: decode_ifla_inet6_cacheinfo

static booldecode_ifla_inet6_cacheinfo(struct tcb *const tcp,			    const kernel_ulong_t addr,			    const unsigned int len,			    const void *const opaque_data){	struct {		uint32_t max_reasm_len;		uint32_t tstamp;		uint32_t reachable_time;		uint32_t retrans_time;	} ci;	if (len < sizeof(ci))		return false;	else if (!umove_or_printaddr(tcp, addr, &ci)) {		PRINT_FIELD_U("{", ci, max_reasm_len);		PRINT_FIELD_U(", ", ci, tstamp);		PRINT_FIELD_U(", ", ci, reachable_time);		PRINT_FIELD_U(", ", ci, retrans_time);		tprints("}");	}	return true;}
开发者ID:xdbob,项目名称:strace,代码行数:25,


示例22: btrfs_print_ino_path_container

static voidbtrfs_print_ino_path_container(struct tcb *tcp,			       const uint64_t fspath_addr){	struct btrfs_data_container container;	if (umove_or_printaddr(tcp, fspath_addr, &container))		return;	btrfs_print_data_container_header(&container);	if (abbrev(tcp)) {		tprints("...");	} else {		uint64_t val_addr =			fspath_addr + offsetof(typeof(container), val);		uint64_t offset;		print_array(tcp, val_addr, container.elem_cnt,			    &offset, sizeof(offset),			    umoven_or_printaddr,			    print_btrfs_data_container_ino_path, &val_addr);	}	btrfs_print_data_container_footer();}
开发者ID:yunchih,项目名称:strace,代码行数:25,


示例23: btrfs_print_logical_ino_container

static voidbtrfs_print_logical_ino_container(struct tcb *tcp,				  const uint64_t inodes_addr){	struct btrfs_data_container container;	if (umove_or_printaddr(tcp, inodes_addr, &container))		return;	btrfs_print_data_container_header(&container);	if (abbrev(tcp)) {		tprints("...");	} else {		const uint64_t val_addr =			inodes_addr + offsetof(typeof(container), val);		uint64_t record[3];		print_array(tcp, val_addr, container.elem_cnt / 3,			    record, sizeof(record),			    umoven_or_printaddr,			    print_btrfs_data_container_logical_ino, 0);	}	btrfs_print_data_container_footer();}
开发者ID:yunchih,项目名称:strace,代码行数:25,


示例24: btrfs_print_balance

static voidbtrfs_print_balance(struct tcb *tcp, const long arg, bool out){	struct btrfs_ioctl_balance_args balance_args;	if (umove_or_printaddr(tcp, arg, &balance_args))		return;	tprints("{flags=");	printflags64(btrfs_balance_flags, balance_args.flags,		     "BTRFS_BALANCE_???");	if (out) {		tprints(", state=");		printflags64(btrfs_balance_state, balance_args.state,			     "BTRFS_BALANCE_STATE_???");	}	if (balance_args.flags & BTRFS_BALANCE_DATA)		btrfs_print_balance_args("data", &balance_args.data);	if (balance_args.flags & BTRFS_BALANCE_METADATA)		btrfs_print_balance_args("meta", &balance_args.meta);	if (balance_args.flags & BTRFS_BALANCE_SYSTEM)		btrfs_print_balance_args("sys", &balance_args.sys);	tprints("}");}
开发者ID:yunchih,项目名称:strace,代码行数:25,


示例25: decode_netlink_sock_diag

booldecode_netlink_sock_diag(struct tcb *const tcp,			 const struct nlmsghdr *const nlmsghdr,			 const kernel_ulong_t addr,			 const unsigned int len){	uint8_t family;	if (nlmsghdr->nlmsg_type == NLMSG_DONE)		return false;	if (!umove_or_printaddr(tcp, addr, &family)) {		if (family < ARRAY_SIZE(diag_decoders)		    && len > sizeof(family)) {			const netlink_diag_decoder_t decoder =				(nlmsghdr->nlmsg_flags & NLM_F_REQUEST)				? diag_decoders[family].request				: diag_decoders[family].response;			if (decoder) {				decoder(tcp, nlmsghdr, family, addr, len);				return true;			}		}		decode_family(tcp, family, addr, len);	}	return true;}
开发者ID:MIPS,项目名称:external-strace,代码行数:30,


示例26: MPERS_PRINTER_DECL

MPERS_PRINTER_DECL(void, printsiginfo_at,		   struct tcb *const tcp, const kernel_ulong_t addr){	siginfo_t si;	if (!umove_or_printaddr(tcp, addr, &si))		printsiginfo(&si);}
开发者ID:lineprinter,项目名称:strace,代码行数:8,



注:本文中的umove_or_printaddr函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ umtx_initOnce函数代码示例
C++ umove函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。