-typedef struct {
- int fr_handler;
- unsigned int fr_psw : 16; /* saved psw */
- unsigned int fr_mask : 12; /* register save mask */
- unsigned int fr_unused : 1;
- unsigned int fr_s : 1; /* call was a calls, not callg */
- unsigned int fr_spa : 2; /* stack pointer alignment */
- unsigned int fr_savap; /* saved arg pointer */
- unsigned int fr_savfp; /* saved frame pointer */
- int fr_savpc; /* saved program counter */
-} Vaxframe;
-
-LOCAL ADDRESS fetchpc(framep)
-ADDRESS *framep;
-{
- register PROCESS *p;
- Vaxframe vframe;
- ADDRESS *savfp;
- ADDRESS r;
-
- p = process;
- if (p->fp == (ADDRESS) framep) {
- return(p->reg[11]);
- }
- savfp = (ADDRESS *) p->fp;
- dread(&vframe, savfp, sizeof(vframe));
- while (vframe.fr_savfp != (int) framep && vframe.fr_savfp != 0) {
- savfp = (ADDRESS *) vframe.fr_savfp;
- dread(&vframe, savfp, sizeof(vframe));
+ p = process;
+ do {
+ if (option('e')) {
+ printf("execution resumes at pc 0x%x, lc %d\n", process->pc, pc);
+ fflush(stdout);