enum {NOCOM, PRCOM, DSCOM} lastcom;
register ADDR addr, bkaddr;
if (reflag) { /* search for regular expression */
if (integ != 0 && var[0] != '\0') {
error("Invalid command (1)");
if (integ != 0) { /* print line number */
printf("Unexpected null command\n");
printf("%.8s() in \"%s\"\n",
curproc()->pname, curfile);
if (*p++ == '.') goto l1;
/* argument is procedure name */
if ((procp->pname[0] != '\0') && (procp->sfptr != badfile)) {
finit(adrtofilep(procp->paddr)->sfilename);
else printf("Can't find %s\n", args);
printf("%.8s() in \"%s\"\n", curproc()->pname, curfile);
l1: /* argument is filename */
printf("\"%s\"\n", curfile);
fback(integ ? integ : 1);
fforward(integ ? integ : 1);
oaddr += oincr ? oincr : typetosize(otype, WORDSIZE);
dispf((ADDR) oaddr, odesc,
oclass == N_RSYM ? oclass : N_GSYM, otype, 0, 0);
if (args[0] == '\0') getargs();
if (debug) error("calling dopcs");
if (integ) cntval = integ;
if (integ) cntval = integ;
if (debug) error("exiting dopcs");
if (proc[0] != '\0' || integ != 0) {
dot = getaddr(proc, integ);
error("Cannot set temporary breakpoint");
f1: if (debug) error("calling dopcs");
if (integ) cntval = integ;
if (debug) error("exiting dopcs");
if (!signo) printf("Breakpoint");
singstep(integ ? integ : 1, cmd);
error("Not stopped at breakpoint");
dot = getaddr(proc, integ);
if (integ) cntval = integ;
if (!signo) printf("Breakpoint");
userpc = dot = *(ADDR *)(((ADDR)&u)+PC) = pcs;
*(ADDR *)(((ADDR)&u)+FP) = fps;
*(ADDR *)(((ADDR)&u)+AP) = aps;
error("Procedure killed");
if (proc[0] == '\0' && integ == 0) {
dot = getaddr(proc,integ);
if (dot == -1 || dot == 0) {
error("Cannot set breakpoint");
printbkpt(s, adrtoprocp(dot)->pname,
if (proc[0] == '\0' && integ == 0) {
dot = getaddr(proc,integ);
error("Non existent breakpoint");
error("All breakpoints deleted");
addr = varaddr(proc[0] ? proc : curproc()->pname, var);
printf("stopped with value %d\n", monex(addr, 'd'));
if (var[0] == '.' && var[1] == '\0') {
if (integ == 0) integ = oaddr;
dispf((ADDR) integ, args[0] ? args : odesc,
oclass == N_RSYM ? oclass : N_GSYM, otype, 0, 0);
if (integ && (var[0] == '\0')) {
dispf((ADDR) integ, args, N_GSYM, 0, 0, 0);
dispvar(proc, var, args);
addr = getaddr(proc, integ);
error("Unknown address");
dispf(addr, args[0] ? args : "x", 0, -1, 0, 0);
findvar(proc, var, args[0] ? args : "x", 2);
addr = getaddr(proc, integ);
addr = varaddr(proc, var);
error("Unknown variable");
if (number(args[0]) || eqany(args[0], ".-")) {
p = (args[0] == '-') ? args+1 : args;
for (; *p != '.' && *p != 'e'; p++) {
if (!number(*p)) goto l2;
putval(addr, 'd', dbl.w1);
if (typetodesc(sl_type,0)[0] == 'g')
putval(addr+WORDSIZE, 'd', dbl.w2);
l2: if (sl_class == N_RSYM && addr < 16)
putreg(addr,typetodesc(sl_type,subflag)[0],
putval(addr,typetodesc(sl_type,subflag)[0],