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