]> granicus.if.org Git - strace/commitdiff
futex: avoid printing val when it is not used by the futex command
authorEugene Syromyatnikov <evgsyr@gmail.com>
Mon, 29 Aug 2016 21:01:45 +0000 (00:01 +0300)
committerDmitry V. Levin <ldv@altlinux.org>
Tue, 30 Aug 2016 17:29:28 +0000 (17:29 +0000)
This is analogous to timeout argument omitting in FUTEX_WAKE_BITSET
command.

* futex.c (SYS_FUNC(futex)): Remove common printing of val argument.
Add printing of val argument for all futex commands except
FUTEX_LOCK_PI, FUTEX_UNLOCK_PI, and FUTEX_TRYLOCK_PI.

futex.c

diff --git a/futex.c b/futex.c
index 1418c89b10ba46f54eedfcb1537b46577b627c76..9410b2a6a4fdde168ed91965c5f2dcc86a810498 100644 (file)
--- a/futex.c
+++ b/futex.c
@@ -59,32 +59,40 @@ SYS_FUNC(futex)
        printaddr(uaddr);
        tprints(", ");
        printxval(futexops, op, "FUTEX_???");
-       tprintf(", %u", val);
        switch (cmd) {
        case FUTEX_WAIT:
+               tprintf(", %u", val);
+               tprints(", ");
+               print_timespec(tcp, timeout);
+               break;
        case FUTEX_LOCK_PI:
                tprints(", ");
                print_timespec(tcp, timeout);
                break;
        case FUTEX_WAIT_BITSET:
+               tprintf(", %u", val);
                tprints(", ");
                print_timespec(tcp, timeout);
                tprintf(", %#x", val3);
                break;
        case FUTEX_WAKE_BITSET:
+               tprintf(", %u", val);
                tprintf(", %#x", val3);
                break;
        case FUTEX_REQUEUE:
+               tprintf(", %u", val);
                tprintf(", %u, ", val2);
                printaddr(uaddr2);
                break;
        case FUTEX_CMP_REQUEUE:
        case FUTEX_CMP_REQUEUE_PI:
+               tprintf(", %u", val);
                tprintf(", %u, ", val2);
                printaddr(uaddr2);
                tprintf(", %u", val3);
                break;
        case FUTEX_WAKE_OP:
+               tprintf(", %u", val);
                tprintf(", %u, ", val2);
                printaddr(uaddr2);
                tprints(", {");
@@ -96,6 +104,7 @@ SYS_FUNC(futex)
                tprintf(", %u}", val3 & 0xfff);
                break;
        case FUTEX_WAIT_REQUEUE_PI:
+               tprintf(", %u", val);
                tprints(", ");
                print_timespec(tcp, timeout);
                tprints(", ");
@@ -103,10 +112,13 @@ SYS_FUNC(futex)
                break;
        case FUTEX_FD:
        case FUTEX_WAKE:
+               tprintf(", %u", val);
+               break;
        case FUTEX_UNLOCK_PI:
        case FUTEX_TRYLOCK_PI:
                break;
        default:
+               tprintf(", %u", val);
                tprintf(", %#lx", timeout);
                tprints(", ");
                printaddr(uaddr2);