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*