2005-11-01 21:30:27

by Alan Stern

[permalink] [raw]
Subject: Setting kernel data breakpoints on x86

I'm trying to debug a rather difficult data-overwriting problem, and it
would be a big help to be able to use a data breakpoint.

Is there any easy way of doing this? I'd prefer not to use a kernel
debugger, because the address of the breakpoint and the time when it's
needed are determined dynamically.

Does anybody have a little lightweight procedure for setting one of the
x86's debug registers to point to a particular location in kernel memory
space? I don't care if the whole system crashes when the debug exception
occurs, just so long as I can get a stack trace and find out where the
overwrite comes from.

Alan Stern


2005-11-02 07:16:53

by Maneesh Soni

[permalink] [raw]
Subject: Re: Setting kernel data breakpoints on x86

On Tue, Nov 01, 2005 at 04:30:26PM -0500, Alan Stern wrote:
> I'm trying to debug a rather difficult data-overwriting problem, and it
> would be a big help to be able to use a data breakpoint.
>
> Is there any easy way of doing this? I'd prefer not to use a kernel
> debugger, because the address of the breakpoint and the time when it's
> needed are determined dynamically.
>
> Does anybody have a little lightweight procedure for setting one of the
> x86's debug registers to point to a particular location in kernel memory
> space? I don't care if the whole system crashes when the debug exception
> occurs, just so long as I can get a stack trace and find out where the
> overwrite comes from.
>
>

Hi Alan

Probably watchpoint probes could be useful for this..

http://www.ussg.iu.edu/hypermail/linux/kernel/0508.3/1407.html

http://sourceware.org/ml/systemtap/2005-q3/msg00097.html

Thanks
Maneesh

--
Maneesh Soni
Linux Technology Center,
IBM India Software Labs,
Bangalore, India
email: [email protected]
Phone: 91-80-25044990

2005-11-02 16:26:28

by Alan Stern

[permalink] [raw]
Subject: Re: Setting kernel data breakpoints on x86

On Wed, 2 Nov 2005, Maneesh Soni wrote:

> On Tue, Nov 01, 2005 at 04:30:26PM -0500, Alan Stern wrote:
> > I'm trying to debug a rather difficult data-overwriting problem, and it
> > would be a big help to be able to use a data breakpoint.
> >
> > Is there any easy way of doing this? I'd prefer not to use a kernel
> > debugger, because the address of the breakpoint and the time when it's
> > needed are determined dynamically.
> >
> > Does anybody have a little lightweight procedure for setting one of the
> > x86's debug registers to point to a particular location in kernel memory
> > space? I don't care if the whole system crashes when the debug exception
> > occurs, just so long as I can get a stack trace and find out where the
> > overwrite comes from.
> >
> >
>
> Hi Alan
>
> Probably watchpoint probes could be useful for this..
>
> http://www.ussg.iu.edu/hypermail/linux/kernel/0508.3/1407.html
>
> http://sourceware.org/ml/systemtap/2005-q3/msg00097.html

Hi Maneesh:

That's exactly what I was looking for. Thanks!

Alan Stern