4 printargv(struct tcb *tcp, long addr)
9 char data[sizeof(long)];
13 unsigned wordsize = current_wordsize;
16 for (sep = ""; !abbrev(tcp) || n < max_strlen / 2; sep = ", ", ++n) {
17 if (umoven(tcp, addr, wordsize, cp.data) < 0) {
18 tprintf("%#lx", addr);
26 printstr(tcp, cp.p64, -1);
30 tprintf("%s...", sep);
34 printargc(const char *fmt, struct tcb *tcp, long addr)
39 for (count = 0; umove(tcp, addr, &cp) >= 0 && cp != NULL; count++) {
40 addr += sizeof(char *);
42 tprintf(fmt, count, count == 1 ? "" : "s");
48 printpath(tcp, tcp->u_arg[0]);
50 tprintf(", %#lx", tcp->u_arg[1]);
53 printargv(tcp, tcp->u_arg[1]);
57 tprintf(", %#lx", tcp->u_arg[2]);
59 printargc(", [/* %d var%s */]", tcp, tcp->u_arg[2]);
62 printargv(tcp, tcp->u_arg[2]);
69 #if defined(SPARC) || defined(SPARC64)
73 printpath(tcp, tcp->u_arg[0]);
75 tprintf(", %#lx", tcp->u_arg[1]);
78 printargv(tcp, tcp->u_arg[1]);
84 #endif /* SPARC || SPARC64 */