From: Eugene Syromyatnikov Date: Thu, 24 Nov 2016 21:48:00 +0000 (+0300) Subject: Fix omission of field names in printers of timeval structure X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=151d1d158c3c80c138803a6483189124a36b497c;p=strace Fix omission of field names in printers of timeval structure * print_time.c (time_fmt): Remove. (timeval_fmt): New constant. (print_timeval_t, sprint_timeval, print_timeval32_t, sprint_timeval32): Use it instead of time_fmt. * print_timex.c (print_timex): Print field names of the time field. * printrusage.c (printrusage, printrusage32): Print field names of ru_utime and ru_stime fields. * tests/adjtimex.c (main): Add field names to expected output. * tests/clock_nanosleep.c (main): Likewise. * tests/futimesat.c (main): Likewise. * tests/getrusage.c (main): Likewise. * tests/nanosleep.c (main): Likewise. * tests/oldselect.expected: Likewise. * tests/utimes.c (main): Likewise. * tests/wait4.c (sprint_rusage): Likewise. * tests/waitid.c (sprint_rusage): Likewise. * tests/xetitimer.c (main): Likewise. * tests/xettimeofday.c (main): Likewise. * tests/xselect.c (main): Likewise. --- diff --git a/print_time.c b/print_time.c index 6276b08d..34c1c304 100644 --- a/print_time.c +++ b/print_time.c @@ -44,7 +44,7 @@ typedef struct timeval timeval_t; #endif static const char timespec_fmt[] = "{tv_sec=%jd, tv_nsec=%jd}"; -static const char time_fmt[] = "{%jd, %jd}"; +static const char timeval_fmt[] = "{tv_sec=%jd, tv_usec=%jd}"; static void print_timespec_t(const timespec_t *t) @@ -71,7 +71,7 @@ print_timespec_t_utime(const timespec_t *t) static void print_timeval_t(const timeval_t *t) { - tprintf(time_fmt, (intmax_t) t->tv_sec, (intmax_t) t->tv_usec); + tprintf(timeval_fmt, (intmax_t) t->tv_sec, (intmax_t) t->tv_usec); } MPERS_PRINTER_DECL(void, print_timespec, @@ -164,7 +164,7 @@ MPERS_PRINTER_DECL(const char *, sprint_timeval, struct tcb *tcp, const long addr) { timeval_t t; - static char buf[sizeof(time_fmt) + 3 * sizeof(t)]; + static char buf[sizeof(timeval_fmt) + 3 * sizeof(t)]; if (!addr) { strcpy(buf, "NULL"); @@ -172,7 +172,7 @@ MPERS_PRINTER_DECL(const char *, sprint_timeval, umove(tcp, addr, &t)) { snprintf(buf, sizeof(buf), "%#lx", addr); } else { - snprintf(buf, sizeof(buf), time_fmt, + snprintf(buf, sizeof(buf), timeval_fmt, (intmax_t) t.tv_sec, (intmax_t) t.tv_usec); } @@ -215,7 +215,7 @@ typedef struct { static void print_timeval32_t(const timeval32_t *t) { - tprintf(time_fmt, (intmax_t) t->tv_sec, (intmax_t) t->tv_usec); + tprintf(timeval_fmt, (intmax_t) t->tv_sec, (intmax_t) t->tv_usec); } void @@ -263,7 +263,7 @@ const char * sprint_timeval32(struct tcb *tcp, const long addr) { timeval32_t t; - static char buf[sizeof(time_fmt) + 3 * sizeof(t)]; + static char buf[sizeof(timeval_fmt) + 3 * sizeof(t)]; if (!addr) { strcpy(buf, "NULL"); @@ -271,7 +271,7 @@ sprint_timeval32(struct tcb *tcp, const long addr) umove(tcp, addr, &t)) { snprintf(buf, sizeof(buf), "%#lx", addr); } else { - snprintf(buf, sizeof(buf), time_fmt, + snprintf(buf, sizeof(buf), timeval_fmt, (intmax_t) t.tv_sec, (intmax_t) t.tv_usec); } diff --git a/print_timex.c b/print_timex.c index ad6a7114..21ac0e4a 100644 --- a/print_timex.c +++ b/print_timex.c @@ -56,7 +56,7 @@ MPERS_PRINTER_DECL(int, print_timex, struct tcb *tcp, const long addr) tprintf(", constant=%jd, precision=%ju, tolerance=%jd", (intmax_t) tx.constant, (uintmax_t) tx.precision, (intmax_t) tx.tolerance); - tprintf(", time={%jd, %jd}", + tprintf(", time={tv_sec=%jd, tv_usec=%jd}", (intmax_t) tx.time.tv_sec, (intmax_t) tx.time.tv_usec); tprintf(", tick=%jd, ppsfreq=%jd, jitter=%jd", (intmax_t) tx.tick, (intmax_t) tx.ppsfreq, (intmax_t) tx.jitter); diff --git a/printrusage.c b/printrusage.c index 548af828..5dff1c6e 100644 --- a/printrusage.c +++ b/printrusage.c @@ -44,7 +44,8 @@ MPERS_PRINTER_DECL(void, printrusage, struct tcb *tcp, long addr) if (umove_or_printaddr(tcp, addr, &ru)) return; - tprintf("{ru_utime={%llu, %llu}, ru_stime={%llu, %llu}, ", + tprintf("{ru_utime={tv_sec=%llu, tv_usec=%llu}, " + "ru_stime={tv_sec=%llu, tv_usec=%llu}, ", zero_extend_signed_to_ull(ru.ru_utime.tv_sec), zero_extend_signed_to_ull(ru.ru_utime.tv_usec), zero_extend_signed_to_ull(ru.ru_stime.tv_sec), @@ -99,7 +100,8 @@ printrusage32(struct tcb *tcp, long addr) if (umove_or_printaddr(tcp, addr, &ru)) return; - tprintf("{ru_utime={%lu, %lu}, ru_stime={%lu, %lu}, ", + tprintf("{ru_utime={tv_sec=%lu, tv_usec=%lu}, " + "ru_stime={tv_sec=%lu, tv_usec=%lu}, ", (long) ru.ru_utime.tv_sec, (long) ru.ru_utime.tv_usec, (long) ru.ru_stime.tv_sec, (long) ru.ru_stime.tv_usec); if (abbrev(tcp)) diff --git a/tests/adjtimex.c b/tests/adjtimex.c index 9507fbee..1638b535 100644 --- a/tests/adjtimex.c +++ b/tests/adjtimex.c @@ -48,9 +48,9 @@ main(void) printf("adjtimex\\(\\{modes=0, offset=%jd, freq=%jd, maxerror=%jd" ", esterror=%jd, status=%s, constant=%jd, precision=%jd" - ", tolerance=%jd, time=\\{%jd, %jd\\}, tick=%jd, ppsfreq=%jd" - ", jitter=%jd, shift=%d, stabil=%jd, jitcnt=%jd, calcnt=%jd" - ", errcnt=%jd, stbcnt=%jd" + ", tolerance=%jd, time=\\{tv_sec=%jd, tv_usec=%jd\\}, tick=%jd, " + "ppsfreq=%jd, jitter=%jd, shift=%d, stabil=%jd, jitcnt=%jd, " + "calcnt=%jd, errcnt=%jd, stbcnt=%jd" #ifdef HAVE_STRUCT_TIMEX_TAI ", tai=%d" #endif diff --git a/tests/clock_nanosleep.c b/tests/clock_nanosleep.c index 87a3d5d3..98407d7e 100644 --- a/tests/clock_nanosleep.c +++ b/tests/clock_nanosleep.c @@ -89,8 +89,8 @@ main(void) if (setitimer(ITIMER_REAL, &itv, NULL)) perror_msg_and_skip("setitimer"); - printf("setitimer(ITIMER_REAL, {it_interval={%jd, %jd}" - ", it_value={%jd, %jd}}, NULL) = 0\n", + printf("setitimer(ITIMER_REAL, {it_interval={tv_sec=%jd, tv_usec=%jd}" + ", it_value={tv_sec=%jd, tv_usec=%jd}}, NULL) = 0\n", (intmax_t) itv.it_interval.tv_sec, (intmax_t) itv.it_interval.tv_usec, (intmax_t) itv.it_value.tv_sec, diff --git a/tests/futimesat.c b/tests/futimesat.c index b56911c4..d1e18efe 100644 --- a/tests/futimesat.c +++ b/tests/futimesat.c @@ -69,8 +69,8 @@ main(void) (void) close(0); rc = syscall(__NR_futimesat, 0, "", ts); - printf("futimesat(0, \"\", [{%llu, %llu}, {%llu, %llu}])" - " = %ld %s (%m)\n", + printf("futimesat(0, \"\", [{tv_sec=%llu, tv_usec=%llu}, " + "{tv_sec=%llu, tv_usec=%llu}]) = %ld %s (%m)\n", CAST_NUM(ts[0].tv_sec), CAST_NUM(ts[0].tv_usec), CAST_NUM(ts[1].tv_sec), CAST_NUM(ts[1].tv_usec), rc, errno2name()); diff --git a/tests/getrusage.c b/tests/getrusage.c index 3c09aa6e..8bea24f2 100644 --- a/tests/getrusage.c +++ b/tests/getrusage.c @@ -41,9 +41,9 @@ main(void) { struct rusage *const usage = tail_alloc(sizeof(struct rusage)); int rc = syscall(__NR_getrusage, RUSAGE_SELF, usage); - printf("getrusage(RUSAGE_SELF, {ru_utime={%ju, %ju}" - ", ru_stime={%ju, %ju}, ru_maxrss=%lu, ru_ixrss=%lu" - ", ru_idrss=%lu, ru_isrss=%lu, ru_minflt=%lu" + printf("getrusage(RUSAGE_SELF, {ru_utime={tv_sec=%ju, tv_usec=%ju}" + ", ru_stime={tv_sec=%ju, tv_usec=%ju}, ru_maxrss=%lu" + ", ru_ixrss=%lu, ru_idrss=%lu, ru_isrss=%lu, ru_minflt=%lu" ", ru_majflt=%lu, ru_nswap=%lu, ru_inblock=%lu" ", ru_oublock=%lu, ru_msgsnd=%lu, ru_msgrcv=%lu" ", ru_nsignals=%lu, ru_nvcsw=%lu, ru_nivcsw=%lu}) = %d\n", diff --git a/tests/nanosleep.c b/tests/nanosleep.c index 86bc2a45..9f0e626f 100644 --- a/tests/nanosleep.c +++ b/tests/nanosleep.c @@ -78,8 +78,8 @@ main(void) if (setitimer(ITIMER_REAL, &itv, NULL)) perror_msg_and_skip("setitimer"); - printf("setitimer(ITIMER_REAL, {it_interval={%jd, %jd}" - ", it_value={%jd, %jd}}, NULL) = 0\n", + printf("setitimer(ITIMER_REAL, {it_interval={tv_sec=%jd, tv_usec=%jd}" + ", it_value={tv_sec=%jd, tv_usec=%jd}}, NULL) = 0\n", (intmax_t) itv.it_interval.tv_sec, (intmax_t) itv.it_interval.tv_usec, (intmax_t) itv.it_value.tv_sec, diff --git a/tests/oldselect.expected b/tests/oldselect.expected index c0426f42..d6e7f3c4 100644 --- a/tests/oldselect.expected +++ b/tests/oldselect.expected @@ -1,2 +1,2 @@ -select(2, [1], [0], NULL, {0, 42}) = 0 (Timeout) +select(2, [1], [0], NULL, {tv_sec=0, tv_usec=42}) = 0 (Timeout) +++ exited with 0 +++ diff --git a/tests/utimes.c b/tests/utimes.c index 401d18a1..8a3d7d30 100644 --- a/tests/utimes.c +++ b/tests/utimes.c @@ -66,8 +66,8 @@ main(void) ts[1].tv_usec = tv.tv_usec + 1; rc = syscall(__NR_utimes, "", ts); - printf("utimes(\"\", [{%llu, %llu}, {%llu, %llu}])" - " = %ld %s (%m)\n", + printf("utimes(\"\", [{tv_sec=%llu, tv_usec=%llu}, " + "{tv_sec=%llu, tv_usec=%llu}]) = %ld %s (%m)\n", CAST_NUM(ts[0].tv_sec), CAST_NUM(ts[0].tv_usec), CAST_NUM(ts[1].tv_sec), CAST_NUM(ts[1].tv_usec), rc, errno2name()); diff --git a/tests/wait4.c b/tests/wait4.c index 2d316aa6..ccb3ebb9 100644 --- a/tests/wait4.c +++ b/tests/wait4.c @@ -40,8 +40,8 @@ sprint_rusage(const struct rusage *const ru) { static char buf[1024]; snprintf(buf, sizeof(buf), - "{ru_utime={%lu, %lu}" - ", ru_stime={%lu, %lu}" + "{ru_utime={tv_sec=%lu, tv_usec=%lu}" + ", ru_stime={tv_sec=%lu, tv_usec=%lu}" #if VERBOSE ", ru_maxrss=%lu" ", ru_ixrss=%lu" diff --git a/tests/waitid.c b/tests/waitid.c index c7fc507b..db15b824 100644 --- a/tests/waitid.c +++ b/tests/waitid.c @@ -42,8 +42,8 @@ sprint_rusage(const struct rusage *const ru) { static char buf[1024]; snprintf(buf, sizeof(buf), - "{ru_utime={%llu, %llu}" - ", ru_stime={%llu, %llu}" + "{ru_utime={tv_sec=%llu, tv_usec=%llu}" + ", ru_stime={tv_sec=%llu, tv_usec=%llu}" #if VERBOSE ", ru_maxrss=%llu" ", ru_ixrss=%llu" diff --git a/tests/xetitimer.c b/tests/xetitimer.c index 9c9fd997..4b17edd3 100644 --- a/tests/xetitimer.c +++ b/tests/xetitimer.c @@ -49,9 +49,10 @@ main(void) if (setitimer(ITIMER_REAL, &new.itv, &old.itv)) perror_msg_and_skip("setitimer"); printf("setitimer(ITIMER_REAL" - ", {it_interval={%jd, %jd}, it_value={%jd, %jd}}" - ", {it_interval={%jd, %jd}, it_value={%jd, %jd}}" - ") = 0\n", + ", {it_interval={tv_sec=%jd, tv_usec=%jd}, " + "it_value={tv_sec=%jd, tv_usec=%jd}}" + ", {it_interval={tv_sec=%jd, tv_usec=%jd}, " + "it_value={tv_sec=%jd, tv_usec=%jd}}) = 0\n", (intmax_t) new.itv.it_interval.tv_sec, (intmax_t) new.itv.it_interval.tv_usec, (intmax_t) new.itv.it_value.tv_sec, @@ -64,8 +65,8 @@ main(void) if (getitimer(ITIMER_REAL, &old.itv)) perror_msg_and_skip("getitimer"); printf("getitimer(ITIMER_REAL" - ", {it_interval={%jd, %jd}, it_value={%jd, %jd}}" - ") = 0\n", + ", {it_interval={tv_sec=%jd, tv_usec=%jd}, " + "it_value={tv_sec=%jd, tv_usec=%jd}}) = 0\n", (intmax_t) old.itv.it_interval.tv_sec, (intmax_t) old.itv.it_interval.tv_usec, (intmax_t) old.itv.it_value.tv_sec, diff --git a/tests/xettimeofday.c b/tests/xettimeofday.c index dd050917..d36c57b4 100644 --- a/tests/xettimeofday.c +++ b/tests/xettimeofday.c @@ -48,12 +48,12 @@ main(void) if (syscall(__NR_gettimeofday, &t.tv, NULL)) perror_msg_and_skip("gettimeofday"); - printf("gettimeofday({%jd, %jd}, NULL) = 0\n", + printf("gettimeofday({tv_sec=%jd, tv_usec=%jd}, NULL) = 0\n", (intmax_t) t.tv.tv_sec, (intmax_t) t.tv.tv_usec); if (syscall(__NR_gettimeofday, &t.tv, &t.tz)) perror_msg_and_skip("gettimeofday"); - printf("gettimeofday({%jd, %jd}" + printf("gettimeofday({tv_sec=%jd, tv_usec=%jd}" ", {tz_minuteswest=%d, tz_dsttime=%d}) = 0\n", (intmax_t) t.tv.tv_sec, (intmax_t) t.tv.tv_usec, t.tz.tz_minuteswest, t.tz.tz_dsttime); @@ -61,7 +61,7 @@ main(void) t.tv.tv_sec = -1; t.tv.tv_usec = 1000000000; assert(syscall(__NR_settimeofday, &t.tv, &t.tz) == -1); - printf("settimeofday({%jd, %jd}" + printf("settimeofday({tv_sec=%jd, tv_usec=%jd}" ", {tz_minuteswest=%d, tz_dsttime=%d})" " = -1 EINVAL (%m)\n", (intmax_t) t.tv.tv_sec, (intmax_t) t.tv.tv_usec, diff --git a/tests/xselect.c b/tests/xselect.c index 08e29e1f..39e87ac7 100644 --- a/tests/xselect.c +++ b/tests/xselect.c @@ -72,8 +72,8 @@ int main(void) FD_SET(fds[0], set); FD_SET(fds[1], set); assert(syscall(TEST_SYSCALL_NR, fds[1] + 1, NULL, set, NULL, &tm.tv) == 3); - printf("%s(%d, NULL, [1 2 %d %d], NULL, {%lld, %lld})" - " = 3 (out [1 2 %d], left {%lld, %lld})\n", + printf("%s(%d, NULL, [1 2 %d %d], NULL, {tv_sec=%lld, tv_usec=%lld})" + " = 3 (out [1 2 %d], left {tv_sec=%lld, tv_usec=%lld})\n", TEST_SYSCALL_STR, fds[1] + 1, fds[0], fds[1], (long long) tm_in.tv.tv_sec, (long long) tm_in.tv.tv_usec, fds[1], @@ -97,7 +97,7 @@ int main(void) tm.tv.tv_sec = 0; tm.tv.tv_usec = 123; assert(syscall(TEST_SYSCALL_NR, FD_SETSIZE + 1, set, set + 1, NULL, &tm.tv) == 0); - printf("%s(%d, [%d], [], NULL, {0, 123}) = 0 (Timeout)\n", + printf("%s(%d, [%d], [], NULL, {tv_sec=0, tv_usec=123}) = 0 (Timeout)\n", TEST_SYSCALL_STR, FD_SETSIZE + 1, fds[0]); puts("+++ exited with 0 +++");