9fans - fans of the OS Plan 9 from Bell Labs
 help / color / mirror / Atom feed
From: erik quanstrom <quanstro@quanstro.net>
To: 9fans@9fans.net
Subject: Re: [9fans] syscall tracing: errstr
Date: Thu, 23 Aug 2012 13:45:49 -0400	[thread overview]
Message-ID: <7b91c25159e2f83bbf6632726c978d2d@kw.quanstro.net> (raw)
In-Reply-To: <CAG3N4d9b=7pRHSPbv0f7nBSWsXU4qfQ2MeFQMF--znGKxT_JBQ@mail.gmail.c>

On Thu Aug 23 13:11:05 EDT 2012, yarikos@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	other threads:[~2012-08-23 17:45 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <CAG3N4d9b=7pRHSPbv0f7nBSWsXU4qfQ2MeFQMF--znGKxT_JBQ@mail.gmail.c>
2012-08-23 17:45 ` erik quanstrom [this message]
2012-08-27  4:10   ` ron minnich
     [not found]   ` <CAP6exYKyMipMjJVfBbsWTrXchWjdKQMXpjGn963h93EWrDwYNA@mail.gmail.c>
2012-08-27  6:27     ` erik quanstrom
2012-08-28 16:02       ` ron minnich
     [not found]       ` <CAP6exY+VEV_3CLK53oycH47CADvzNXyWpNn+_E74Sz88TQjkcA@mail.gmail.c>
2012-08-28 16:18         ` erik quanstrom
2012-08-28 19:36           ` ron minnich
2012-08-23 17:10 Yaroslav

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7b91c25159e2f83bbf6632726c978d2d@kw.quanstro.net \
    --to=quanstro@quanstro.net \
    --cc=9fans@9fans.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).