Re: [PATCH] ptrace(2) single-stepping into signal handlers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> Subject: Re: [PATCH] ptrace(2) single-stepping into signal handlers
> From: Andi Kleen <[email protected]>
> Date: Sun, 5 Jun 2005 13:21:19 +0200
> To: John Blackwood <[email protected]>
> CC: [email protected], [email protected], [email protected], [email protected], [email protected]
>
> On Fri, Jun 03, 2005 at 01:21:20PM -0400, John Blackwood wrote:
>
> >> 1. Make the default behavior that we single-step to the next instruction
> >>    in the main (non-signal handler) stream of execution, instead of
> >>    single-stepping into the user's signal handler.
>
>
> I think it is better to not change the default behaviour. You risk
> breaking programs and there are much more that use ptrace than just gdb.

O.K.  Yes, it seems that this is definitely not a popular idea.   :-)


> >> 2. Add a new ptrace PTRACE_SETOPTIONS command flag,
>
>
> I think it would be better to just define a new ptrace singlestep command
> with the new semantics instead of adding options.

Yes, this is a good idea...  I just might re-post this approach
as a suggestion.


> >> - The ptraced process has a pending signal and
> >>   it stops to notify the debugger.
> >>
> >> - The debugger then single-steps into the ptraced process's signal handler.
> >>
> >> - On the next eventual continue (PTRACE_CONT) command, we run through the > >> signal handler, and we stop once again at the next instruction before
> >>   we changed our execution stream and single-stepped into the user's
> >>   signal handler.
> >>
> >> - At this point, we can no longer continue the ptraced process
> >> with a PTRACE_CONT command. Instead, all ptrace(2) PTRACE_CONT calls
> >>   are treated as if we had made a ptrace(2) PTRACE_SINGLESTEP call.
>
>
> Have you actually seen this in practice?

Yes, but Andrew Morton suggested I try out the above test scenario on:


ftp://ftp.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.12-rc5.tar.bz2

And the problem has indeed been fixed - there is some new code in the
i386 version of handle_signal() that fixes this problem.

(I saw the problem on earlier 2.6.11.10 and 2.6.11.11 kernels.)


Thanks for the feedback, Andrew.


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux