--- process.c +++ process.c @@ -765,12 +765,13 @@ setarg(tcp, argnum) { #if defined (IA64) { - unsigned long *bsp, *ap; + unsigned long *ap; + long bsp; - if (upeek(tcp->pid, PT_AR_BSP, (long *) &bsp) , 0) + if (upeek(tcp->pid, PT_AR_BSP, &bsp) , 0) return -1; - ap = ia64_rse_skip_regs(bsp, argnum); + ap = ia64_rse_skip_regs((unsigned long *) bsp, argnum); errno = 0; ptrace(PTRACE_POKEDATA, tcp->pid, (char *) ap, tcp->u_arg[argnum]); if (errno) @@ -2289,6 +2290,18 @@ static const struct xlat ptrace_cmds[] = #ifdef PTRACE_SETVRREGS { PTRACE_SETVRREGS, "PTRACE_SETVRREGS", }, #endif +#ifdef PTRACE_SETOPTIONS + { PTRACE_SETOPTIONS, "PTRACE_SETOPTIONS", }, +#endif +#ifdef PTRACE_GETEVENTMSG + { PTRACE_GETEVENTMSG, "PTRACE_GETEVENTMSG", }, +#endif +#ifdef PTRACE_GETSIGINFO + { PTRACE_GETSIGINFO, "PTRACE_GETSIGINFO", }, +#endif +#ifdef PTRACE_SETSIGINFO + { PTRACE_SETSIGINFO, "PTRACE_SETSIGINFO", }, +#endif #ifdef SUNOS4 { PTRACE_READDATA, "PTRACE_READDATA" }, { PTRACE_WRITEDATA, "PTRACE_WRITEDATA" }, --- resource.c +++ resource.c @@ -388,10 +388,10 @@ struct tcb *tcp; si.loads[2]); tprintf("totalram=%lu, freeram=%lu, ", si.totalram, si.freeram); - tprintf("sharedram=%lu, bufferram=%lu} ", + tprintf("sharedram=%lu, bufferram=%lu, ", si.sharedram, si.bufferram); - tprintf("totalswap=%lu, freeswap=%lu, procs=%hu}", - si.totalswap, si.freeswap, si.procs); + tprintf("totalswap=%lu, freeswap=%lu, procs=%hu, mem_unit=%u}", + si.totalswap, si.freeswap, si.procs, si.mem_unit); } } return 0; --- strace-graph +++ strace-graph @@ -229,7 +229,7 @@ sub handle_trace { push @$seq, ['EXEC', $filename, $argv]; $pr{$pid}{seq} = $seq; - } elsif ($call eq 'fork' || $call eq 'clone' || $call eq 'vfork') { + } elsif ($call eq 'fork' || $call eq 'clone' || $call eq 'clone2' || $call eq 'vfork') { return if $result == 0; my $seq = $pr{$pid}{seq}; --- util.c +++ util.c @@ -1319,9 +1319,8 @@ arg_setup(struct tcb *tcp, arg_setup_sta sof = (cfm >> 0) & 0x7f; sol = (cfm >> 7) & 0x7f; - bsp = (long) ia64_rse_skip_regs((unsigned long *) bsp, -sof + sol); + *state = ia64_rse_skip_regs((unsigned long *) bsp, -sof + sol); - *state = (unsigned long *) bsp; return 0; }