since 2.1.0 (!), the DR6 value was not saved on debug traps, so
not allowing to know which DR0-3 did trigger a trap (if any)
this patch (against 2.2.13) should solve this issue
A+
-- --------------- Eric Pouech (http://perso.wanadoo.fr/eric.pouech/) "The future will be better tomorrow", Vice President Dan Quayle --------------61AA24BAC20342151375201C Content-Type: text/plain; charset=us-ascii; name="dr6.diff" Content-Transfer-Encoding: 7bit Content-Disposition: inline; filename="dr6.diff"--- traps.c.orig Thu Dec 9 21:39:40 1999 +++ traps.c Thu Dec 9 21:49:13 1999 @@ -354,10 +354,11 @@ unsigned int condition; struct task_struct *tsk = current; + __asm__ __volatile__("movl %%db6,%0" : "=r" (condition)); + tsk->tss.debugreg[6] = condition; + if (regs->eflags & VM_MASK) goto debug_vm86; - - __asm__ __volatile__("movl %%db6,%0" : "=r" (condition)); /* Mask out spurious TF errors due to lazy TF clearing */ if (condition & DR_STEP) {
--------------61AA24BAC20342151375201C--
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/