2008-04-19  Dmitry V. Levin <[EMAIL PROTECTED]>

        * desc.c (decode_select): Decode timeout for interrupted syscall.
        * syscall.c (trace_syscall): Fix ERESTART* decode output.
---
 strace/desc.c    |    7 +++++++
 strace/syscall.c |    8 ++++----
 2 files changed, 11 insertions(+), 4 deletions(-)

--- a/strace/desc.c
+++ b/strace/desc.c
@@ -464,6 +464,13 @@ decode_select(struct tcb *tcp, long *args, enum bitness_t 
bitness)
                unsigned int cumlen = 0;
                char *sep = "";
 
+               if (args[4] && is_restart_error(tcp)) {
+                       strcpy(outstr, "left ");
+                       sprinttv(tcp, args[4], bitness, outstr + 
strlen(outstr));
+                       tcp->auxstr = outstr;
+                       return RVAL_STR;
+               }
+
                if (syserror(tcp))
                        return 0;
 
--- a/strace/syscall.c
+++ b/strace/syscall.c
@@ -2344,16 +2344,16 @@ trace_syscall(struct tcb *tcp)
                        switch (u_error) {
 #ifdef LINUX
                        case ERESTARTSYS:
-                               tprintf("= ? ERESTARTSYS (To be restarted)");
+                               tprintf("= -1 ERESTARTSYS (To be restarted)");
                                break;
                        case ERESTARTNOINTR:
-                               tprintf("= ? ERESTARTNOINTR (To be restarted)");
+                               tprintf("= -1 ERESTARTNOINTR (To be 
restarted)");
                                break;
                        case ERESTARTNOHAND:
-                               tprintf("= ? ERESTARTNOHAND (To be restarted)");
+                               tprintf("= -1 ERESTARTNOHAND (To be 
restarted)");
                                break;
                        case ERESTART_RESTARTBLOCK:
-                               tprintf("= ? ERESTART_RESTARTBLOCK (To be 
restarted)");
+                               tprintf("= -1 ERESTART_RESTARTBLOCK (To be 
restarted)");
                                break;
 #endif /* LINUX */
                        default:


-- 
ldv

Attachment: pgpmywfOxi76Z.pgp
Description: PGP signature

-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
Strace-devel mailing list
Strace-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/strace-devel

Reply via email to