register ADDR addr
, odot
;
if (signo
== SIGINT
) signo
= 0;
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);
if (debug
) error("calling subpcs");
if (integ
) cntval
= integ
;
if (integ
) cntval
= integ
;
if (debug
) error("exiting subpcs");
if (debug
) error("calling subpcs");
if (integ
) cntval
= integ
;
if (debug
) error("exiting subpcs");
if (!signo
) printf("Breakpoint");
singstep(integ
? integ
: 1);
odot
= *(ADDR
*) (((ADDR
) &u
) + PC
);
dot
= getaddr(adrtoprocp(odot
)->pname
, adrtolineno(odot
)+i
);
if (dot
!= odot
|| dot
== -1) break;
if (odot
== dot
|| dot
== -1) {
error("Cannot find next line");
if (debug
) printf("Setting bkpt with i=%d at %d, odot = %d\n", i
, dot
, odot
);
if (!signo
) printf("Next statement\n");
if (proc
[0] == '\0' && integ
== 0) {
dot
= getaddr(proc
,integ
);
error("Cannot set breakpoint");
printf("%.8s:%d b\n",adrtoprocp(dot
)->pname
,
if (proc
[0] == '\0' && integ
== 0) {
dot
= getaddr(proc
,integ
);
error("Non existent breakpoint");
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
= oldaddr
;
dispf((ADDR
) integ
, args
[0] ? args
: odesc
,
oclass
== N_RSYM
? oclass
: N_GSYM
, otype
, 0);
dispf((ADDR
) integ
, args
, N_GSYM
, 0, 0);
oldaddr
= dispvar(proc
[0] ? proc
: curproc()->pname
, var
, args
);
addr
= getaddr(proc
, integ
);
addr
= varaddr(proc
[0] ? proc
: curproc()->pname
, var
);
error("Unknown address");
addr
= getaddr(proc
, integ
);
addr
= varaddr(proc
[0] ? proc
: curproc()->pname
, var
);
error("Unknown variable");
putreg(addr
,typetodesc(sl_type
,subflag
)[0],argvalue(args
));
putval(addr
,typetodesc(sl_type
,subflag
)[0],argvalue(args
));