from charles, and the sources patch of the same name Add a -s srvname option to rdbfs, allowing debugging sessions to be shared or later reattached after disconnection. Reference: /n/atom/patch/applied2013/rdbfs-srvname Date: Thu Jun 13 05:08:26 CES 2013 Signed-off-by: quanstro@quanstro.net --- /sys/src/cmd/rdbfs.c Thu Jun 13 05:07:55 2013 +++ /sys/src/cmd/rdbfs.c Thu Jun 13 05:07:55 2013 @@ -124,7 +124,6 @@ Xfpregs, Xkregs, Xmem, - Xnote, Xproc, Xregs, Xtext, @@ -138,12 +137,13 @@ char* portname = "/dev/eia0"; char* textfile = "/386/9pc"; char* procname = "1"; +char* srvname; Channel* rchan; void usage(void) { - fprint(2, "usage: rdbfs [-p procnum] [-t textfile] [serialport]\n"); + fprint(2, "usage: rdbfs [-p procnum] [-s srvname] [-t textfile] [serialport]\n"); exits("usage"); } @@ -224,11 +224,9 @@ goto Break2; }else{ DBG(2, "unknown message\n"); - break; } } } - respond(r, "timed out"); Break2:; } } @@ -236,10 +234,20 @@ void attachremote(char* name) { + int fd; + char buf[128]; + print("attach %s\n", name); rfd = open(name, ORDWR); if(rfd < 0) - sysfatal("can't open remote %s: %r", name); + sysfatal("can't open remote %s", name); + + sprint(buf, "%sctl", name); + fd = open(buf, OWRITE); + if(fd < 0) + sysfatal("can't set baud rate on %s", buf); + write(fd, "B9600", 6); + close(fd); Binit(&rfb, rfd, OREAD); } @@ -293,7 +301,7 @@ respond(r, nil); break; case Xstatus: - n = sprint(buf, "%-28s%-28s%-28s", "remote", getuser(), "Broken"); + n = sprint(buf, "%-28s%-28s%-28s", "remote", "system", "New"); for(i = 0; i < 9; i++) n += sprint(buf+n, "%-12d", 0); readstr(r, buf); @@ -309,15 +317,13 @@ { char buf[ERRMAX]; - r->ofcall.count = r->ifcall.count; switch((uintptr)r->fid->file->aux) { case Xctl: - case Xnote: if(strncmp(r->ifcall.data, "kill", 4) == 0 || strncmp(r->ifcall.data, "exit", 4) == 0) { -// fprint(rfd, "%c", 0); /* break; would reboot remote */ respond(r, nil); - threadexitsall(nil); + postnote(PNGROUP, getpid(), "umount"); + exits(nil); }else if(strncmp(r->ifcall.data, "refresh", 7) == 0){ flushcache(); respond(r, nil); @@ -356,7 +362,6 @@ "fpregs", Xfpregs, 0666, "kregs", Xkregs, 0666, "mem", Xmem, 0666, - "note", Xnote, 0222, "proc", Xproc, 0444, "regs", Xregs, 0666, "text", Xtext, 0444, @@ -393,6 +398,9 @@ case 'p': procname = EARGF(usage()); break; + case 's': + srvname = EARGF(usage()); + break; case 't': textfile = EARGF(usage()); break; @@ -423,7 +431,7 @@ for(i=0; i