shithub: drawcpu

Download patch

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);
--