Re: [PATCH 1/1] ptrace: Get tracer PID without reliance on the proc FS

From: Oleg Nesterov
Date: Wed Sep 11 2024 - 15:54:09 EST


Roman,

I can only repeat that we can't understand each other. Quite possibly my bad.

On 09/11, Roman Kisel wrote:
>
> On 09/11, Oleg Nesterov wrote:
>
> > On 09/10, Roman Kisel wrote:
> > >
> > > On 09/09, Oleg wrote:
> > >
> >
> > > > Yet another thing in this discussion I can't understand... sorry, I tried.
> > > > You do not need to teach, say, gdb to recognize this pattern. You can just do
> > > >
> > > > $ gdb -ex 'b please_insert_the_breakpoint_here' ...
> > > >
> > > > Nevermind, as I have already said you can safely ignore me. I still do not
> > > > see any "real" use-case for breakpoint_if_debugging(), but I guess that is
> > > > due to my ignorance and lack of imagination.
> > >
> > > I've started this so let me butt in and take up the gaunlet.
> > >
> > > Lambda's would be the most prominent example to me[1]. The toolchain
> > > doesn't give them the user-accesible type and the name as it does for
> > > the functions.
> >
> > And?
>
> You wanted an example of '"real" use-case for breakpoint_if_debugging()':

Then why does your email explain that c++ lambdas don't have a good name?
Why doesi it mention lambdas at all?

> > > > Nevermind, as I have already said you can safely ignore me. I still do not
> > > > see any "real" use-case for breakpoint_if_debugging(), but I guess that is
> > > > due to my ignorance and lack of imagination.
>
> I have provided them, and illustrated how it is tiresome to set the breakpoint
> in the debugger in these cases so can add a call to breakpoint_if_debugging()
> to these places instead.

Instead of what??? Instead of

#define breakpoint_if_debugging() \
asm volatile ("call please_insert_the_breakpoint_here" : ASM_CALL_CONSTRAINT);

plus -ex 'b please_insert_the_breakpoint_here'???

If you say that this is ugly I won't even argue. But instead of what?

Roman, I am leaving this thread, sorry. But let me try to summarize.
Your patch was buggy and you seem to agree. Feel free to send V2 and I will
be happy to review it correctness-wise. But:

- please keep Eric/Linus cc'ed

- please try to make your changelog more convincing. And in particular,
please explain why !!current->ptrace is not enough and this feature
needs the tracer's pid.

If possible, please provide a clear/simple/artificial/whatever example
of the (pseudo)code which can justify this feature.
Oleg.