[SCM] strace branch, master, updated. v4.5.20-103-g7b6847b
Dmitry V. Levin
ldv at altlinux.org
Mon Mar 14 16:27:13 UTC 2011
On Mon, Mar 14, 2011 at 11:55:44AM +0100, Denys Vlasenko wrote:
> On Fri, 2011-03-11 at 23:53 +0300, Dmitry V. Levin wrote:
> > On Thu, Mar 10, 2011 at 12:26:08PM +0100, Denys Vlasenko wrote:
> > > + in_job_control_stop = 0;
> > > + if (WSTOPSIG(status) == SIGSTOP ||
> > > + WSTOPSIG(status) == SIGTSTP ||
> > > + WSTOPSIG(status) == SIGTTIN ||
> > > + WSTOPSIG(status) == SIGTTOU) {
> > > + /*
> > > + * PTRACE_GETSIGINFO fails if this is
> > > + * genuine *stop* notification,
> > > + * not *signal* notification
> > > + */
> > > + siginfo_t si;
> > > + if (ptrace(PTRACE_GETSIGINFO, pid,
> > > + 0, &si) != 0)
> > > + in_job_control_stop = 1;
> > > + }
> > > printleader(tcp);
> > > - tprintf("--- %s (%s) @ %lx (%lx) ---",
> > > + tprintf(in_job_control_stop
> > > + ? "--- stopped by %s ---"
> > > + : "--- %s (%s) @ %lx (%lx) ---",
> >
> > In addition to what I've already written in this thread, I want to point
> > out that, unfortunately, this "stopped by" wording contradicts with
> > reality. The tracee is just trapped, and there are no means to make
> > it really stopped without detaching.
>
> There were several active discussion threads on lkml exactly about this,
> which resulted (finally) in actual patches to fix
> long-standing problem with strace + ^Z not working properly.
> I'm CC'ing participants. If you want to read the last of these threads,
> google for "[RFC] Proposal for ptrace improvements".
It's nice that newer kernels might implement proper job control for traced
processes some day.
> During those discussions, several people, including me,
> were again puzzled by "double SIGSTOP" thing in strace.
With commits I've pushed to strace HEAD today, strace output will be
more useful:
$ pidof pause | xargs -r strace -p
Process 12345 attached - interrupt to quit
pause() = ? ERESTARTNOHAND (To be restarted)
--- {si_signo=SIGTSTP, si_code=SI_KERNEL} (Stopped) ---
--- Stopped by SIGTSTP ---
pause(
--
ldv
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: not available
URL: <http://lists.strace.io/pipermail/strace-devel/attachments/20110314/ca3c1b56/attachment.bin>
More information about the Strace-devel
mailing list