ron@rdk386.uucp (Ron Kuris) (04/10/90)
I'm considering trying to get watchpoints working for SCO Xenix. I understand this was done on an Interactive machine. Does anyone with Interactive have a knowledge of what the OS does with the debug registers when it does a task switch? Does it push them on the kernel stack? Alternatively, perhaps someone with an excellent 386 understanding could explain to me how a program with a CPL>0 can use the local bits of the debug registers. According to the Intel documentation, you can't do anything with the debug registers unless your CPL is zero. Also, I think your CPL changes when you task switch. Can someone explain this better? I looked at the interrupt handler code in SCO xenix (isn't the 'disassemble' option of gdb nice?) and saw that it just pushed the general purpose registers (i also noticed that there is a kernel stack pointer which isn't used when the program restores -- hmmm... maybe I can use this to store ONE debug register :-). -- -- ...!pyramid!unify!rdk386!ron -or- ...!ames!pacbell!sactoh0!siva!rdk386!ron It's not how many mistakes you make, its how quickly you recover from them.