From 84114f06650ba3db950532b1d0cd1d7e18b4b6be Mon Sep 17 00:00:00 2001 From: rsc Date: Mon, 19 Apr 2004 19:30:50 +0000 Subject: debugger --- src/cmd/db/regs.c | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/cmd/db/regs.c (limited to 'src/cmd/db/regs.c') diff --git a/src/cmd/db/regs.c b/src/cmd/db/regs.c new file mode 100644 index 00000000..4a9a4426 --- /dev/null +++ b/src/cmd/db/regs.c @@ -0,0 +1,44 @@ +/* + * code to keep track of registers + */ + +#include "defs.h" +#include "fns.h" + +/* + * print the registers + */ +void +printregs(int c) +{ + Regdesc *rp; + int i; + ulong u; + + if(correg == nil){ + dprint("registers not mapped\n"); + return; + } + + for (i = 1, rp = mach->reglist; rp->name; rp++, i++) { + if ((rp->flags & RFLT)) { + if (c != 'R') + continue; + if (rp->format == '8' || rp->format == '3') + continue; + } + rget(correg, rp->name, &u); + if(rp->format == 'Y') + dprint("%-8s %-20#llux", rp->name, (uvlong)u); + else + dprint("%-8s %-12#lux", rp->name, (ulong)u); + if ((i % 3) == 0) { + dprint("\n"); + i = 0; + } + } + if (i != 1) + dprint("\n"); + dprint ("%s\n", mach->exc(cormap, correg)); + printpc(); +} -- cgit v1.2.3