lkml.org 
[lkml]   [2013]   [Apr]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH 0/2] ptrace/x86: simplify ptrace_write_dr7()
On 04/14, Jan Kratochvil wrote:
>
> On Sun, 14 Apr 2013 21:12:05 +0200, Oleg Nesterov wrote:
> > Jan, Frederic, et all. What do you think we should do?
> >
> > 1. Change ptrace_write_dr7() to do register_user_hw_breakpoint()
> > if necessary.
> >
> > This is what I was going to do, but I am no longer sure
> > we want this. For what? Unlikely it is very useful to use
> > the "default" addr == 0 for debugging.
>
> I do not understand how these functions map to the PTRACE_* syscall.
>
> But this was a regression from the application point of view as some
> application did/do:
> * waitpid - get the process to: t (tracing stop)
> * PTRACE_POKEUSER DR7, enableDR0
> * PTRACE_POKEUSER DR0, address
> * PTRACE_CONT
>
> This was perfectly valid before, there is no "default" addr == 0 used for any
> debugging. Just the applications did not care about PTRACE_POKEUSER ordering.
> This is also how the bug was found.

Yes, exactly.

Except 'there is no "default" addr == 0', the first
"PTRACE_POKEUSER DR7, enableDR0" used addr == 0 and then it was
changed by "PTRACE_POKEUSER DR0".

And once again, I am ready to make the patch, it should be simple.
Just I am not sure it worth the trouble, so I decided to ask first.
Nobody noticed this problem(?) except you, and this was broken a
long ago.

PTRACE_POKEUSER DR0, address
PTRACE_POKEUSER DR7, enableDR0

should work and this looks better, we do not enable bp until it
has the correct address set. Of course this doesn't really matter
if the tracee doesn't not run in between, but still...

Oleg.



\
 
 \ /
  Last update: 2013-04-14 22:01    [W:2.000 / U:0.436 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site