public inbox for frysk-bugzilla@sourceware.org help / color / mirror / Atom feed
From: "cmoller at redhat dot com" <sourceware-bugzilla@sourceware.org> To: frysk-bugzilla@sourceware.org Subject: [Bug general/3997] SIGTRAP handler gets reset when single stepping Date: Wed, 07 Mar 2007 17:34:00 -0000 [thread overview] Message-ID: <20070307173353.17455.qmail@sourceware.org> (raw) In-Reply-To: <20070207161918.3997.mark@klomp.org> ------- Additional Comments From cmoller at redhat dot com 2007-03-07 17:33 ------- Just as a bit of a blog, and as notes to myself, here's what's happening so far: Presumably (I haven't checked yet, so it's "presumably") as a result of the ptrace (PTRACE_SINGLESTEP, pid, 0, SIGTRAP); in the testcase, kernel/utrace.c:utrace_signal_handler_singlestep() is called. Something in there (again, I haven't followed that path yet) results in a call to arch/i386/kernel/traps.c:do_debug() which calls arch/i386/kernel/ptrace.c:send_sigtrap(SIGTRAP,...) which calls kernel/signal.c:force_sig_info() which then sets action->sa.sa_handler = SIG_DFL; if the current action is blocked--the handler up to that point was correctly pointing at the testcase handler; A comment in kernel/signal.c reads: /* * Force a signal that the process can't ignore: if necessary * we unblock the signal and change any SIG_IGN to SIG_DFL. * * Note: If we unblock the signal, we always reset it to SIG_DFL, * since we do not want to have a signal handler that was blocked * be invoked when user space had explicitly blocked it. * * We don't want to have recursive SIGSEGV's etc, for example. */ so I guess the behaviour is deliberate. It will take me more poking to figure out what, if anything, should be done about this. I'm going to guess though that since PTRACE_SINGLESTEP results in the child looking like it's been stopped by a SIGTRAP, and in the testcase a non-SIG_DFL handler is being set by the child on SIGTRAP, there's a bit of confusion. -- http://sourceware.org/bugzilla/show_bug.cgi?id=3997 ------- You are receiving this mail because: ------- You are the assignee for the bug, or are watching the assignee.
next prev parent reply other threads:[~2007-03-07 17:34 UTC|newest] Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top 2007-02-07 16:19 [Bug general/3997] New: " mark at klomp dot org 2007-02-07 16:51 ` [Bug general/3997] " mark at klomp dot org 2007-02-09 21:36 ` mark at klomp dot org 2007-02-10 0:22 ` cagney at redhat dot com 2007-03-06 18:50 ` mark at klomp dot org 2007-03-07 17:34 ` cmoller at redhat dot com [this message] 2007-03-09 10:42 ` mark at klomp dot org 2007-03-19 12:00 ` mark at klomp dot org
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20070307173353.17455.qmail@sourceware.org \ --to=sourceware-bugzilla@sourceware.org \ --cc=frysk-bugzilla@sourceware.org \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).