On Thu Aug 23 13:11:05 EDT 2012, yari...@gmail.com wrote:
> Anybody else noticed ratrace reporting an older errstr?

yes.  i see the same thing.  should be using up->syserrstr not up->errstr, i 
think.

i took the liberty of removing any system call that's been dead for more than a 
decade.  :-)

the format of ratrace output is still essentially unparsable, and it's not 
utf-8 safe.

- erik


; diffy -c ../port/*fmt*.c
/n/dump/2012/0823/sys/src/9/port/syscallfmt.c:80,86 - ../port/syscallfmt.c:80,85
                p = va_arg(list, uintptr);
                fmtprint(&fmt, "%#p", p);
                break;
-       case _ERRSTR:                                   /* deprecated */
        case CHDIR:
        case EXITS:
        case REMOVE:
/n/dump/2012/0823/sys/src/9/port/syscallfmt.c:124,136 - 
../port/syscallfmt.c:123,128
                        argv++;
                }
                break;
-       case _FSESSION:                                 /* deprecated */
-       case _FSTAT:                                    /* deprecated */
-       case _FWSTAT:                                   /* obsolete */
-               i[0] = va_arg(list, int);
-               a = va_arg(list, char*);
-               fmtprint(&fmt, "%d %#p", i[0], a);
-               break;
        case FAUTH:
                i[0] = va_arg(list, int);
                a = va_arg(list, char*);
/n/dump/2012/0823/sys/src/9/port/syscallfmt.c:144,159 - 
../port/syscallfmt.c:136,141
                v = va_arg(list, void*);
                fmtprint(&fmt, "%#p", v);
                break;
-       case _MOUNT:                                    /* deprecated */
-               i[0] = va_arg(list, int);
-               fmtprint(&fmt, "%d ", i[0]);
-               a = va_arg(list, char*);
-               fmtuserstring(&fmt, a, " ");
-               i[0] = va_arg(list, int);
-               fmtprint(&fmt, "%#ux ", i[0]);
-               a = va_arg(list, char*);
-               fmtuserstring(&fmt, a, "");
-               break;
        case OPEN:
                a = va_arg(list, char*);
                fmtuserstring(&fmt, a, " ");
/n/dump/2012/0823/sys/src/9/port/syscallfmt.c:160,182 - 
../port/syscallfmt.c:142,151
                i[0] = va_arg(list, int);
                fmtprint(&fmt, "%#ux", i[0]);
                break;
-       case OSEEK:                                     /* deprecated */
-               i[0] = va_arg(list, int);
-               l = va_arg(list, long);
-               i[1] = va_arg(list, int);
-               fmtprint(&fmt, "%d %ld %d", i[0], l, i[1]);
-               break;
        case SLEEP:
                l = va_arg(list, long);
                fmtprint(&fmt, "%ld", l);
                break;
-       case _STAT:                                     /* obsolete */
-       case _WSTAT:                                    /* obsolete */
-               a = va_arg(list, char*);
-               fmtuserstring(&fmt, a, " ");
-               a = va_arg(list, char*);
-               fmtprint(&fmt, "%#p", a);
-               break;
        case RFORK:
                i[0] = va_arg(list, int);
                fmtprint(&fmt, "%#ux", i[0]);
/n/dump/2012/0823/sys/src/9/port/syscallfmt.c:203,209 - 
../port/syscallfmt.c:172,177
                break;
        case NOTIFY:
        case SEGDETACH:
-       case _WAIT:                                     /* deprecated */
                v = va_arg(list, void*);
                fmtprint(&fmt, "%#p", v);
                break;
/n/dump/2012/0823/sys/src/9/port/syscallfmt.c:274,291 - 
../port/syscallfmt.c:242,255
                a = va_arg(list, char*);
                fmtuserstring(&fmt, a, "");
                break;
-       case _READ:                                     /* deprecated */
        case PREAD:
                i[0] = va_arg(list, int);
                v = va_arg(list, void*);
                l = va_arg(list, long);
                fmtprint(&fmt, "%d %#p %ld", i[0], v, l);
-               if(syscallno == PREAD){
-                       vl = va_arg(list, vlong);
-                       fmtprint(&fmt, " %lld", vl);
-               }
+               vl = va_arg(list, vlong);
+               fmtprint(&fmt, " %lld", vl);
                break;
-       case _WRITE:                                    /* deprecated */
        case PWRITE:
                i[0] = va_arg(list, int);
                v = va_arg(list, void*);
/n/dump/2012/0823/sys/src/9/port/syscallfmt.c:294,303 - 
../port/syscallfmt.c:258,265
                len = MIN(l, 64);
                fmtrwdata(&fmt, v, len, " ");
                fmtprint(&fmt, "%ld", l);
-               if(syscallno == PWRITE){
-                       vl = va_arg(list, vlong);
-                       fmtprint(&fmt, " %lld", vl);
-               }
+               vl = va_arg(list, vlong);
+               fmtprint(&fmt, " %lld", vl);
                break;
        }
  
/n/dump/2012/0823/sys/src/9/port/syscallfmt.c:323,336 - 
../port/syscallfmt.c:285,297
        switch(syscallno){
        default:
                if(ret == -1)
-                       errstr = up->errstr;
+                       errstr = up->syserrstr;
                fmtprint(&fmt, " = %ld", ret);
                break;
        case ALARM:
-       case _WRITE:
        case PWRITE:
                if(ret == -1)
-                       errstr = up->errstr;
+                       errstr = up->syserrstr;
                fmtprint(&fmt, " = %ld", ret);
                break;
        case EXEC:
/n/dump/2012/0823/sys/src/9/port/syscallfmt.c:338,344 - 
../port/syscallfmt.c:299,305
        case SEGATTACH:
        case RENDEZVOUS:
                if((void *)ret == (void*)-1)
-                       errstr = up->errstr;
+                       errstr = up->syserrstr;
                fmtprint(&fmt, " = %#p", (void *)ret);
                break;
        case AWAIT:
/n/dump/2012/0823/sys/src/9/port/syscallfmt.c:350,359 - 
../port/syscallfmt.c:311,319
                }
                else{
                        fmtprint(&fmt, "%#p/\"\" %lud = %ld", a, l, ret);
-                       errstr = up->errstr;
+                       errstr = up->syserrstr;
                }
                break;
-       case _ERRSTR:
        case ERRSTR:
                a = va_arg(list, char*);
                if(syscallno == _ERRSTR)
/n/dump/2012/0823/sys/src/9/port/syscallfmt.c:366,372 - 
../port/syscallfmt.c:326,332
                }
                else{
                        fmtprint(&fmt, "\"\" %lud = %ld", l, ret);
-                       errstr = up->errstr;
+                       errstr = up->syserrstr;
                }
                break;
        case FD2PATH:
/n/dump/2012/0823/sys/src/9/port/syscallfmt.c:380,389 - 
../port/syscallfmt.c:340,348
                }
                else{
                        fmtprint(&fmt, "\"\" %lud = %ld", l, ret);
-                       errstr = up->errstr;
+                       errstr = up->syserrstr;
                }
                break;
-       case _READ:
        case PREAD:
                i = va_arg(list, int);
                USED(i);
/n/dump/2012/0823/sys/src/9/port/syscallfmt.c:395,401 - 
../port/syscallfmt.c:354,360
                }
                else{
                        fmtprint(&fmt, "/\"\"");
-                       errstr = up->errstr;
+                       errstr = up->syserrstr;
                }
                fmtprint(&fmt, " %ld", l);
                if(syscallno == PREAD){

Reply via email to