1 --- strace-4.5.18/ipc.c.orig 2007-01-15 21:25:52.000000000 +0100
2 +++ strace-4.5.18/ipc.c 2009-10-07 22:11:24.392613451 +0200
7 +static const struct xlat semop_flags[] = {
8 + { SEM_UNDO, "SEM_UNDO" },
9 + { IPC_NOWAIT, "IPC_NOWAIT" },
23 tprintf("%lu", tcp->u_arg[0]);
24 if (indirect_ipccall(tcp)) {
25 - tprintf(", %#lx", tcp->u_arg[3]);
26 - tprintf(", %lu", tcp->u_arg[1]);
27 + tprintf(", %#lx {", tcp->u_arg[3]);
28 + for(i = 0; i < tcp->u_arg[1]; i++) {
32 + if (umove(tcp, tcp->u_arg[3]+i*sizeof(struct sembuf), &sb) < 0)
35 + tprintf("{%u, %d, ", sb.sem_num, sb.sem_op);
36 + printflags(semop_flags, sb.sem_flg, "SEM_???");
40 + tprintf("}, %lu", tcp->u_arg[1]);
42 - tprintf(", %#lx", tcp->u_arg[1]);
43 - tprintf(", %lu", tcp->u_arg[2]);
44 + tprintf(", %#lx {", tcp->u_arg[1]);
45 + for(i = 0; i < tcp->u_arg[2]; i++) {
49 + if(umove(tcp, tcp->u_arg[1]+i*sizeof(struct sembuf), &sb) < 0)
52 + tprintf("{%u, %d, ", sb.sem_num, sb.sem_op);
53 + printflags(semop_flags, sb.sem_flg, "SEM_???");
57 + tprintf("}, %lu", tcp->u_arg[2]);
62 int sys_semtimedop(tcp)
68 tprintf("%lu", tcp->u_arg[0]);
69 if (indirect_ipccall(tcp)) {
70 - tprintf(", %#lx", tcp->u_arg[3]);
71 - tprintf(", %lu, ", tcp->u_arg[1]);
72 + tprintf(", %#lx {", tcp->u_arg[3]);
73 + for(i = 0; i < tcp->u_arg[1]; i++) {
77 + if(umove(tcp, tcp->u_arg[3]+i*sizeof(struct sembuf), &sb) < 0)
80 + tprintf("{%u, %d, ", sb.sem_num, sb.sem_op);
81 + printflags(semop_flags, sb.sem_flg, "SEM_???");
85 + tprintf("}, %lu, ", tcp->u_arg[1]);
86 printtv(tcp, tcp->u_arg[5]);
88 - tprintf(", %#lx", tcp->u_arg[1]);
89 - tprintf(", %lu, ", tcp->u_arg[2]);
90 + tprintf(", %#lx {", tcp->u_arg[1]);
91 + for(i = 0; i < tcp->u_arg[2]; i++) {
95 + if(umove(tcp, tcp->u_arg[1]+i*sizeof(struct sembuf), &sb) < 0)
98 + tprintf("{%u, %d, ", sb.sem_num, sb.sem_op);
99 + printflags(semop_flags, sb.sem_flg, "SEM_???");
103 + tprintf("}, %lu, ", tcp->u_arg[2]);
104 printtv(tcp, tcp->u_arg[3]);