{ .decode_iov = decode_iov, .data_size = data_size };
print_array(tcp, addr, len, iov, current_wordsize * 2,
- umoven_or_printaddr, print_iovec, &config);
+ umoven_or_printaddr_ignore_syserror, print_iovec, &config);
}
void
tprints(", ");
} else {
tprint_iov_upto(tcp, tcp->u_arg[2], tcp->u_arg[1],
+ syserror(tcp) ? IOV_DECODE_ADDR :
IOV_DECODE_STR, tcp->u_rval);
tprintf(", %lu", tcp->u_arg[2]);
}
printfd(tcp, tcp->u_arg[0]);
tprints(", ");
} else {
- tprint_iov_upto(tcp, tcp->u_arg[2], tcp->u_arg[1], IOV_DECODE_STR,
- tcp->u_rval);
+ tprint_iov_upto(tcp, tcp->u_arg[2], tcp->u_arg[1],
+ syserror(tcp) ? IOV_DECODE_ADDR :
+ IOV_DECODE_STR, tcp->u_rval);
tprintf(", %lu, ", tcp->u_arg[2]);
print_lld_from_low_high_val(tcp, 3);
if (flags_arg >= 0) {
if (sg_io.iovec_count)
tprint_iov_upto(tcp, sg_io.iovec_count,
(unsigned long) sg_io.dxferp,
- IOV_DECODE_STR,
- din_len);
+ syserror(tcp) ? IOV_DECODE_ADDR :
+ IOV_DECODE_STR, din_len);
else
print_sg_io_buffer(tcp, (unsigned long) sg_io.dxferp,
din_len);
tprintf(", din[%u]=", din_len);
if (sg_io.din_iovec_count)
tprint_iov_upto(tcp, sg_io.din_iovec_count, sg_io.din_xferp,
+ syserror(tcp) ? IOV_DECODE_ADDR :
IOV_DECODE_STR, din_len);
else
print_sg_io_buffer(tcp, sg_io.din_xferp, din_len);
if (preadv(0, iov, 1, -1) != -1)
perror_msg_and_fail("preadv");
- printf("preadv(0, %p, 1, -1) = -1 EINVAL (%m)\n", iov);
+ printf("preadv(0, [{iov_base=%p, iov_len=%zu}], 1, -1) = "
+ "-1 EINVAL (%m)\n", iov->iov_base, iov->iov_len);
if (preadv(0, NULL, 1, -2) != -1)
perror_msg_and_fail("preadv");