diff --git a/src/cmd/acid/builtin.c b/src/cmd/acid/builtin.c
index 195834d..d6601d0 100644
--- a/src/cmd/acid/builtin.c
+++ b/src/cmd/acid/builtin.c
@@ -28,7 +28,7 @@
 void	status(Node*, Node*);
 void	xkill(Node*,Node*);
 void	waitstop(Node*, Node*);
-void sysstop(Node*, Node*);
+void waitsyscall(Node*, Node*);
 void	stop(Node*, Node*);
 void	start(Node*, Node*);
 void	filepc(Node*, Node*);
@@ -47,6 +47,7 @@
 void xregister(Node*, Node*);
 void refconst(Node*, Node*);
 void dolook(Node*, Node*);
+void step1(Node*, Node*);
 
 typedef struct Btab Btab;
 struct Btab
@@ -87,13 +88,14 @@
 	"start",	start,
 	"startstop",	startstop,
 	"status",	status,
+	"step1",	step1,
 	"stop",		stop,
 	"strace",	strace,
 	"stringn",	stringn,
-	"sysstop",		sysstop,
 	"textfile",	textfile,
 	"var",	dolook,
 	"waitstop",	waitstop,
+	"waitsyscall",	waitsyscall,
 	0
 };
 
@@ -221,6 +223,23 @@
 }
 
 void
+step1(Node *r, Node *args)
+{
+	Node res;
+
+	USED(r);
+	if(args == 0)
+		error("step1(pid): no pid");
+	expr(args, &res);
+	if(res.type != TINT)
+		error("step1(pid): arg type");
+
+	msg(res.store.u.ival, "step");
+	notes(res.store.u.ival);
+	dostop(res.store.u.ival);
+}
+
+void
 startstop(Node *r, Node *args)
 {
 	Node res;
@@ -256,16 +275,16 @@
 }
 
 void
-sysstop(Node *r, Node *args)
+waitsyscall(Node *r, Node *args)
 {
 	Node res;
 
 	USED(r);
 	if(args == 0)
-		error("waitstop(pid): no pid");
+		error("waitsyscall(pid): no pid");
 	expr(args, &res);
 	if(res.type != TINT)
-		error("waitstop(pid): arg type");
+		error("waitsycall(pid): arg type");
 
 	Bflush(bout);
 	msg(res.store.u.ival, "sysstop");
@@ -471,7 +490,7 @@
 		error("fnbound(addr): arg type");
 
 	n = fnbound(res.store.u.ival, bounds);
-	if (n != 0) {
+	if (n >= 0) {
 		r->store.u.l = al(TINT);
 		l = r->store.u.l;
 		l->store.u.ival = bounds[0];
diff --git a/src/cmd/acid/proc.c b/src/cmd/acid/proc.c
index 0ae5a5b..298e435 100644
--- a/src/cmd/acid/proc.c
+++ b/src/cmd/acid/proc.c
@@ -88,6 +88,7 @@
 		fatal("new: exec %s: %r");
 	default:
 		install(pid);
+		msg(pid, "attached");
 		msg(pid, "waitstop");
 		notes(pid);
 		sproc(pid);
@@ -242,21 +243,6 @@
 char *
 getstatus(int pid)
 {
-	int fd;
-	char *p;
-
-	static char buf[128];
-
-	sprint(buf, "/proc/%d/status", pid);
-	fd = open(buf, OREAD);
-	if(fd < 0)
-		error("open %s: %r", buf);
-	read(fd, buf, sizeof(buf));
-	close(fd);
-	p = buf+56+12;			/* Do better! */
-	while(*p == ' ')
-		p--;
-	p[1] = '\0';
-	return buf+56;			/* ditto */
+	return "unknown";
 }
 
diff --git a/src/cmd/acid/util.c b/src/cmd/acid/util.c
index 3e6a313..15859db 100644
--- a/src/cmd/acid/util.c
+++ b/src/cmd/acid/util.c
@@ -73,7 +73,7 @@
 	Lsym *l;
 	String *file;
 	ulong v;
-	char buf[1024];
+	char buf[65536];	/* Some of those C++ names are really big */
 	List *list, **tail, *tl;
 
 	if(fp == nil)
