ref: dd193a6e22c0911760aa56bbf0df06b4b75772ca
parent: 206fff9e92b75aa0e3151c2fd657e93bb458581c
author: halfwit <michaelmisch1985@gmail.com>
date: Wed Jul 23 20:21:17 EDT 2025
More robust debug output
--- a/kern/dat.h
+++ b/kern/dat.h
@@ -363,6 +363,7 @@
Running,
Rendezvous,
Wakeme,
+ Dead,
};
struct Proc
--- a/kern/syscall.c
+++ b/kern/syscall.c
@@ -99,6 +99,8 @@
perm = arg(2);
namet = copyifnec(name, -1, &copied);
fd = create(namet, flags, perm);
+ if(debug)
+ print("syscreate\n");if(copied)
free(namet);
if(fd < 0) {@@ -188,6 +190,8 @@
fd = arg(0);
buf = arg(1);
nbuf = arg(2);
+ if(debug)
+ print("fd2path\n");buft = bufifnec(buf, nbuf, &buffered);
up->R[0] = noteerr(fd2path(fd, buft, nbuf), 0);
if(buffered)
@@ -202,7 +206,6 @@
void *edirt;
int copied, buffered;
Segment *seg;
- print("sysstat\n");name = arg(0); // R0
if(debug)
@@ -263,6 +266,8 @@
namet = copyifnec(name, -1, &copied);
edir = arg(1);
nedir = arg(2);
+ if(debug)
+ print("syswstat\n");edirt = copyifnec(edir, nedir, &copied2);
up->R[0] = noteerr(syswstat(namet, edirt, nedir), nedir);
if(copied)
@@ -281,6 +286,8 @@
fd = arg(0);
edir = arg(1);
nedir = arg(2);
+ if(debug)
+ print("sysfwstat\n");edirt = copyifnec(edir, nedir, &copied);
up->R[0] = noteerr(sysfwstat(fd, edirt, nedir), nedir);
if(copied)
@@ -301,10 +308,11 @@
{ulong v;
Segment *s;
- if(debug)
- print("sysbrk\n");+
v = arg(0);
v = v + 7 & -8;
+ if(debug)
+ print("sysbrk v=%.8ux\n", v);if(v >= up->S[SEGSTACK]->start)
fprint(2, "bss > stack, wtf?");
if(v < up->S[SEGBSS]->start)
@@ -328,7 +336,7 @@
char buf[ERRMAX], *srct;
u32int src, len;
int copied;
- print("We're in syserrstr\n");+
src = arg(0);
len = arg(1);
srct = copyifnec(src, len, &copied);
@@ -348,6 +356,8 @@
int copied;
dir = arg(0);
+ if(debug)
+ print("syschdir\n");dirt = copyifnec(dir, -1, &copied);
up->R[0] = noteerr(syschdir(dirt), 0);
if(copied)
@@ -358,7 +368,8 @@
_sysnotify(void)
{u32int handler;
-
+ if(debug)
+ print("sysnotify\n");handler = arg(0);
up->notehandler = handler;
up->R[0] = 0;
@@ -370,6 +381,8 @@
u32int v;
v = arg(0);
+ if(debug)
+ print("sysnoted\n");if(up->innote)
longjmp(up->notejmp, v + 1);
cherrstr("the front fell off");@@ -488,6 +501,8 @@
argv = arg(1);
namet = estrdup((char*)vaddrnol(name, 0));
argvt = vaddr(argv, 0, &seg1);
+ if(debug)
+ print("sysexec: name=%s", namet);for(argc = 0; argvt[argc]; argc++)
;
argvv = mallocz(sizeof(char *) * (argc + 1), 1);
@@ -522,6 +537,8 @@
s = arg(0);
n = arg(1);
st = bufifnec(s, n, &buffered);
+ if(debug)
+ print("sysawait\n");up->R[0] = noteerr(await(st, n), 0);
if(buffered)
copyback(s, up->R[0], st);
@@ -535,6 +552,8 @@
fd = arg(0);
fdt = bufifnec(fd, 8, &buffered);
+ if(debug)
+ print("syspipe\n");up->R[0] = noteerr(syspipe((int *) fdt), 0);
if(buffered)
copyback(fd, 8, fdt);
@@ -547,6 +566,8 @@
oldfd = arg(0);
newfd = arg(1);
+ if(debug)
+ print("sysdup\n");up->R[0] = noteerr(dup2(oldfd, newfd), 0);
}
@@ -556,6 +577,8 @@
u32int n;
n = arg(0);
+ if(debug)
+ print("syssleep: nsec=%.8ux\n", n);osmsleep(n);
up->R[0] = 0;
}
@@ -567,6 +590,8 @@
tag = arg(0);
value = arg(1);
+ if(debug)
+ print("sysrendezvous: tag=%.8ux, value=%.8ux\n", tag, value);up->R[0] = (u32int) (uintptr)sysrendezvous((void *)tag, (void *)value);
if(up->R[0] == ~0)
noteerr(0, 1);
@@ -587,9 +612,13 @@
oldt = copyifnec(old, -1, &copiedold);
if(aname) {anamet = copyifnec(aname, -1, &copiedaname);
+ if(debug)
+ print("sysmount: aname=%s\n", anamet); } else {anamet = nil;
copiedaname = 0;
+ if(debug)
+ print("sysmount\n");}
up->R[0] = noteerr(sysmount(fd, afd, oldt, flag, anamet), 0);
if(copiedold)
@@ -610,6 +639,8 @@
flags = arg(2);
namet = copyifnec(name, -1, &copiedname);
oldt = copyifnec(old, -1, &copiedold);
+ if(debug)
+ print("sysbind: name=%s, old=%s\n", namet, oldt);up->R[0] = noteerr(sysbind(namet, oldt, flags), 0);
if(copiedname)
free(namet);
@@ -627,6 +658,8 @@
name = arg(0);
old = arg(1);
oldt = copyifnec(old, -1, &copiedold);
+ if(debug)
+ print("sysunmount: name=%s, old=%s\n", name, oldt); if(name == 0) {namet = nil;
copiedname = 0;
@@ -650,6 +683,8 @@
file = arg(0);
filet = copyifnec(file, -1, &copied);
+ if(debug)
+ print("sysremove: file=%s\n", filet);up->R[0] = noteerr(sysremove(filet), 0);
if(copied)
free(filet);
@@ -661,6 +696,8 @@
u32int msec;
msec = arg(0);
+ if(debug)
+ print("sysalarm: msec=%.8ux\n", msec);up->R[0] = alarm(msec);
}
@@ -673,6 +710,8 @@
addr = arg(0);
block = arg(1);
addrt = vaddrnol(addr, 4);
+ if(debug)
+ print("syssemacquire: addr=%s, block=%.8ux\n", addrt, block);up->R[0] = noteerr(semacquire(addrt, block), 0);
}
@@ -686,6 +725,8 @@
addr = arg(0);
count = arg(1);
addrt = vaddr(addr, 4, &seg);
+ if(debug)
+ print("syssemrelease: addr=%s, count=%.8ux\n", addrt, count);up->R[0] = noteerr(semrelease(addrt, count), 0);
segunlock(seg);
}
--- a/main.c
+++ b/main.c
@@ -115,8 +115,8 @@
panic("bind #I: %r"); if(bind("#U", "/root", MREPL|MCREATE) < 0) panic("bind #U: %r");- //if(bind("#P", "/proc", MBEFORE) < 0)- // panic("bind #P: %r");+ if(bind("#P", "/proc", MBEFORE) < 0)+ panic("bind #P: %r"); bind("#A", "/dev", MAFTER); bind("#N", "/dev", MAFTER); bind("#C", "/", MAFTER);--
⑨