From: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
To: ppcdev <linuxppc-dev@lists.ozlabs.org>
Cc: oleg@redhat.com, stable@vger.kernel.org,
Srikar Dronamraju <srikar@linux.vnet.ibm.com>
Subject: [PATCH] powerpc/uprobes: teach uprobes to ignore gdb breakpoints
Date: Wed, 20 Mar 2013 16:10:33 +0530 [thread overview]
Message-ID: <20130320104033.GA19844@in.ibm.com> (raw)
From: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
GDB uses a variant of the trap instruction that is different from the
one used by uprobes. Currently, running gdb on a program being traced
by uprobes causes an endless loop since uprobes doesn't understand
that the trap is inserted by some other entity and hence a SIGTRAP needs
to be delivered.
Teach uprobes to ignore breakpoints that doesn't belong to it.
Signed-off-by: Ananth N Mavinakayanahalli <ananth@in.ibm.com>
Cc: stable@vger.kernel.org
---
arch/powerpc/kernel/uprobes.c | 10 ++++++++++
1 file changed, 10 insertions(+)
Index: linux-3.9-rc3/arch/powerpc/kernel/uprobes.c
===================================================================
--- linux-3.9-rc3.orig/arch/powerpc/kernel/uprobes.c
+++ linux-3.9-rc3/arch/powerpc/kernel/uprobes.c
@@ -80,6 +80,16 @@ unsigned long uprobe_get_swbp_addr(struc
return instruction_pointer(regs);
}
+/**
+ * is_swbp_insn - check if the instruction is a breakpoint instruction.
+ * @insn: instruction to be checked.
+ * Returns true if @insn is a breakpoint instruction.
+ */
+bool is_swbp_insn(uprobe_opcode_t *insn)
+{
+ return (is_trap(*insn));
+}
+
/*
* If xol insn itself traps and generates a signal (SIGILL/SIGSEGV/etc),
* then detect the case where a singlestepped instruction jumps back to its
next reply other threads:[~2013-03-20 10:40 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-03-20 10:40 Ananth N Mavinakayanahalli [this message]
2013-03-20 12:26 ` [PATCH] powerpc/uprobes: teach uprobes to ignore gdb breakpoints Oleg Nesterov
2013-03-20 12:43 ` Oleg Nesterov
2013-03-20 15:42 ` Ananth N Mavinakayanahalli
2013-03-20 16:07 ` Oleg Nesterov
2013-03-21 7:17 ` Ananth N Mavinakayanahalli
2013-03-21 16:00 ` Oleg Nesterov
2013-03-22 4:37 ` Ananth N Mavinakayanahalli
2013-03-20 15:41 ` Ananth N Mavinakayanahalli
2013-03-20 16:06 ` Oleg Nesterov
2013-03-21 7:15 ` Ananth N Mavinakayanahalli
2013-03-21 15:58 ` Oleg Nesterov
2013-03-22 4:47 ` Ananth N Mavinakayanahalli
2013-03-22 14:46 ` Oleg Nesterov
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=20130320104033.GA19844@in.ibm.com \
--to=ananth@in.ibm.com \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=oleg@redhat.com \
--cc=srikar@linux.vnet.ibm.com \
--cc=stable@vger.kernel.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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.