forked from pool/strace
79 lines
2.2 KiB
Diff
79 lines
2.2 KiB
Diff
--- 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;
|
|
}
|
|
|