tmore debugging - plan9port - [fork] Plan 9 from user space (HTM) git clone git://src.adamsgaard.dk/plan9port (DIR) Log (DIR) Files (DIR) Refs (DIR) README (DIR) LICENSE --- (DIR) commit af89fc108d61625959704a08ffdd44adfd86a9d4 (DIR) parent 9b4de09d413c43059afcd75ceba4d2adcdc0a0a8 (HTM) Author: rsc <devnull@localhost> Date: Thu, 6 Jan 2005 23:07:19 +0000 more debugging Diffstat: M src/libthread/ioproc.c | 2 +- M src/libthread/iorw.c | 3 ++- M src/libthread/thread.c | 20 ++++++++++++++++---- 3 files changed, 19 insertions(+), 6 deletions(-) --- (DIR) diff --git a/src/libthread/ioproc.c b/src/libthread/ioproc.c t@@ -13,7 +13,7 @@ iointerrupt(Ioproc *io) { if(!io->inuse) return; - fprint(2, "bug: cannot iointerrupt yet\n"); + fprint(2, "bug: cannot iointerrupt %p yet\n", io); } static void (DIR) diff --git a/src/libthread/iorw.c b/src/libthread/iorw.c t@@ -123,7 +123,8 @@ _iowrite(va_list *arg) long iowrite(Ioproc *io, int fd, void *a, long n) { - return iocall(io, _iowrite, fd, a, n); + n = iocall(io, _iowrite, fd, a, n); + return n; } static long (DIR) diff --git a/src/libthread/thread.c b/src/libthread/thread.c t@@ -23,17 +23,29 @@ _threaddebug(char *fmt, ...) va_list arg; char buf[128]; _Thread *t; - - return; + char *p; + static int fd = -1; + +return; + if(fd < 0){ + p = strrchr(argv0, '/'); + if(p) + p++; + else + p = argv0; + snprint(buf, sizeof buf, "/tmp/%s.tlog", p); + if((fd = create(buf, OWRITE, 0666)) < 0) + fd = open("/dev/null", OWRITE); + } va_start(arg, fmt); vsnprint(buf, sizeof buf, fmt, arg); va_end(arg); t = proc()->thread; if(t) - fprint(2, "%d.%d: %s\n", getpid(), t->id, buf); + fprint(fd, "%d.%d: %s\n", getpid(), t->id, buf); else - fprint(2, "%d._: %s\n", getpid(), buf); + fprint(fd, "%d._: %s\n", getpid(), buf); } static _Thread*