Single-stepping
Richard Hirst
rhirst@linuxcare.com
Thu, 16 Nov 2000 13:20:17 +0000
On Thu, Nov 16, 2000 at 05:44:55AM -0700, John Marvin wrote:
> > Current code does
> >
> > /* Nullified, just crank over the queue. */
> > task_regs(child)->iaoq[0] = task_regs(child)->iaoq[1];
> > task_regs(child)->iasq[0] = task_regs(child)->iasq[1];
> > task_regs(child)->iaoq[1] = task_regs(child)->iaoq[0] + 4;
> >
> > Does that look right to you?
>
> Yes, that is the correct way to do it (I'll assume the duplicated line
> is just a cut/paste error).
It's not duplicated (iaoq v. iasq).
> > At the moment my test harness notes IAOQ=0x100 and stops single stepping,
> > but obviously the kernel needs to enforce that.
> >
> You should also be checking the space. But yes, the kernel needs to enforce
> this for security reasons. You should be able to do it in the recovery
> counter trap handler (rather than having to test for it in the syscall
> path, which affects all processes).
I might come back to you on that when I've thought some more.
Thanks,
Richard