Re: [PATCH] kdb/mdb hardware breakpoints broken 2.4.17/18

Suparna Bhattacharya (suparna@in.ibm.com)
Thu, 24 Jan 2002 13:15:19 -0500


Keith Owens wrote:
>
> On Wed, 23 Jan 2002 14:00:45 -0700,
> "Jeff V. Merkey" <jmerkey@vger.timpanogas.org> wrote:
> >Please find a patch that corrects the problem with hardware
> >breakpoints not working with kdb. I have noticed that gdb uses
> >inserted int3 (0xCC) breakpoints (as does kdb) for soft breakpoint
> >support, so this fix may not affect these programs. It is not
> >clear why every signal handled is writing a 0 t the DR7 register.
>
> Not a 0, it is %0, gcc asm parameter 0. There used to be a bug in
> ptrace handling where db7 would get cleared in taps.c and would not get
> reinstated until one timeslice after the initial trap. Fixed by James
> Cownie in June 2000 by reinstating db7 before passing the signal to
> user space.
>
> The conflict with kdb is inherent in the lack of a kernel interface for
> assigning debug registers.

As Bharata mentioned this sort of a thing is exactly what we use today
in dprobes. Guess we could separate out that piece as a patch so you can
take a look. We had posted one long back on this list, but have now
cleaned
up and reorganized it a bit. In fact we've used this for a while for
preparing
consolidated patches containing both dprobes and kdb, in a way that also
interoperates with gdb (we don't want our watchpoint settings to get
overwritten
on a context switch for example).

>gdb/ptrace always uses i386 db4-7 no matter
> what kdb is doing. The kernel always uses db7, even if no tracing is
> being done. If you want to use gdb/ptrace then restrict your kdb usage
> to db0-3, without gdb/ptrace kdb can use db0-6.
>
> It would be nice to have a proper debug register function to
> automatically detect conflicts and tell one of the debuggers to go
> away. However Linus "I don't want kernel debuggers" Torvalds does not
> care about this problem and I don't want the footprint of kdb to be any
> bigger than it has to be. So kdb relies on the user to know which
> debug registers then can use.
>
> -
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/