M carrera/trap.c => carrera/trap.c +12 -0
@@ 817,3 817,15 @@ setkernur(Ureg *xp, Proc *p)
xp->sp = p->sched.sp;
xp->r31 = (ulong)sched;
}
+
+ulong
+dbgpc(Proc *p)
+{
+ Ureg *ur;
+
+ ur = p->dbgreg;
+ if(ur == 0)
+ return 0;
+
+ return ur->pc;
+}
M pc/trap.c => pc/trap.c +12 -0
@@ 743,3 743,15 @@ setkernur(Ureg *xp, Proc *p)
xp->pc = p->sched.pc;
xp->sp = p->sched.sp+4;
}
+
+ulong
+dbgpc(Proc *p)
+{
+ Ureg *ur;
+
+ ur = p->dbgreg;
+ if(ur == 0)
+ return 0;
+
+ return ur->pc;
+}
M port/portfns.h => port/portfns.h +1 -0
@@ 46,6 46,7 @@ void copypage(Page*, Page*);
int cread(Chan*, uchar*, int, ulong);
void cupdate(Chan*, uchar*, int, ulong);
void cwrite(Chan*, uchar*, int, ulong);
+ulong dbgpc(Proc*);
int decref(Ref*);
int decrypt(void*, void*, int);
void delay(int);
M port/proc.c => port/proc.c +2 -2
@@ 808,8 808,8 @@ procdump(void)
s = p->psstate;
if(s == 0)
s = "kproc";
- print("%3d:%10s pc %8lux %8s (%s) ut %ld st %ld bss %lux\n",
- p->pid, p->text, p->pc, s, statename[p->state],
+ print("%3d:%10s pc %8lux dbgpc %8lux %8s (%s) ut %ld st %ld bss %lux\n",
+ p->pid, p->text, p->pc, dbgpc(p), s, statename[p->state],
p->time[0], p->time[1], bss);
}
for(rq = &runq[Nrq-1]; rq >= runq; rq--){
M power/trap.c => power/trap.c +12 -0
@@ 701,3 701,15 @@ setkernur(Ureg *xp, Proc *p)
xp->sp = p->sched.sp;
xp->r31 = (ulong)sched;
}
+
+ulong
+dbgpc(Proc *p)
+{
+ Ureg *ur;
+
+ ur = p->dbgreg;
+ if(ur == 0)
+ return 0;
+
+ return ur->pc;
+}