[PATCH v2 3/4] uprobes/powerpc: teach uprobes to ignore gdb breakpoints
From: Ananth N Mavinakayanahalli <hidden>
Date: 2013-03-22 15:19:07
Also in:
lkml
From: Ananth N Mavinakayanahalli <hidden>
Date: 2013-03-22 15:19:07
Also in:
lkml
From: Ananth N Mavinakayanahalli <redacted> Powerpc has many trap variants that could be used by entities like gdb. Currently, running gdb on a program being traced by uprobes causes an endless loop since uprobes doesn't understand that the trap was inserted by some other entity and a SIGTRAP needs to be delivered. Teach uprobes to ignore breakpoints that do not belong to it. Signed-off-by: Ananth N Mavinakayanahalli <redacted> --- 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@@ -31,6 +31,16 @@ #define UPROBE_TRAP_NR UINT_MAX /** + * is_trap_insn - check if the instruction is a trap variant + * @insn: instruction to be checked. + * Returns true if @insn is a trap variant. + */ +bool is_trap_insn(uprobe_opcode_t *insn) +{ + return (is_trap(*insn)); +} + +/** * arch_uprobe_analyze_insn * @mm: the probed address space. * @arch_uprobe: the probepoint information.