4 printargv(struct tcb *tcp, long addr)
9 char data[sizeof(long)];
13 const unsigned wordsize = current_wordsize;
16 for (sep = ""; !abbrev(tcp) || n < max_strlen / 2; sep = ", ", ++n) {
17 if (umoven_or_printaddr(tcp, addr, wordsize, cp.data))
24 printstr(tcp, cp.p64, -1);
28 tprintf("%s...", sep);
32 printargc(const char *fmt, struct tcb *tcp, long addr)
37 for (count = 0; !umoven(tcp, addr, current_wordsize, &cp) && cp; count++) {
38 addr += current_wordsize;
40 tprintf(fmt, count, count == 1 ? "" : "s");
44 decode_execve(struct tcb *tcp, const unsigned int index)
46 printpath(tcp, tcp->u_arg[index + 0]);
49 if (!tcp->u_arg[index + 1] || !verbose(tcp))
50 printaddr(tcp->u_arg[index + 1]);
53 printargv(tcp, tcp->u_arg[index + 1]);
58 if (!tcp->u_arg[index + 2] || !verbose(tcp))
59 printaddr(tcp->u_arg[index + 2]);
61 printargc("[/* %d var%s */]", tcp, tcp->u_arg[index + 2]);
64 printargv(tcp, tcp->u_arg[index + 2]);
71 decode_execve(tcp, 0);
78 print_dirfd(tcp, tcp->u_arg[0]);
79 decode_execve(tcp, 1);
81 printflags(at_flags, tcp->u_arg[4], "AT_???");
86 #if defined(SPARC) || defined(SPARC64)
89 printpath(tcp, tcp->u_arg[0]);
91 if (!tcp->u_arg[1] || !verbose(tcp))
92 printaddr(tcp->u_arg[1]);
95 printargv(tcp, tcp->u_arg[1]);
101 #endif /* SPARC || SPARC64 */