PATCH: saving i386 debug register on debug traps

Eric Pouech (Eric.Pouech@wanadoo.fr)
Thu, 09 Dec 1999 20:57:11 +0000


This is a multi-part message in MIME format.
--------------61AA24BAC20342151375201C
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

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/