| To: | linux-kernel@xxxxxxxxxxxxxxx |
|---|---|
| Subject: | [PATCH 08/37] kgdb,sh: update superh kgdb exception handling |
| From: | Jason Wessel <jason.wessel@xxxxxxxxxxxxx> |
| Date: | Wed, 23 Dec 2009 15:19:21 -0600 |
| Cc: | kgdb-bugreport@xxxxxxxxxxxxxxxxxxxxx, kdb@xxxxxxxxxxx, mingo@xxxxxxx, Jason Wessel <jason.wessel@xxxxxxxxxxxxx>, Paul Mundt <lethal@xxxxxxxxxxxx> |
| In-reply-to: | <1261603190-5036-8-git-send-email-jason.wessel@xxxxxxxxxxxxx> |
| References: | <1261603190-5036-1-git-send-email-jason.wessel@xxxxxxxxxxxxx> <1261603190-5036-2-git-send-email-jason.wessel@xxxxxxxxxxxxx> <1261603190-5036-3-git-send-email-jason.wessel@xxxxxxxxxxxxx> <1261603190-5036-4-git-send-email-jason.wessel@xxxxxxxxxxxxx> <1261603190-5036-5-git-send-email-jason.wessel@xxxxxxxxxxxxx> <1261603190-5036-6-git-send-email-jason.wessel@xxxxxxxxxxxxx> <1261603190-5036-7-git-send-email-jason.wessel@xxxxxxxxxxxxx> <1261603190-5036-8-git-send-email-jason.wessel@xxxxxxxxxxxxx> |
Implement kgdb_arch_pc() which adjusts the pc if it needs to be
adjusted after a software breakpoint trap.
Implement kgdb_arch_set_pc() which is a new required function in the
kgdb debug core.
When processing a single step return zero in the error exception field
so that the debug core can distinguish between a single step trap and
a breakpoint trap generically.
CC: Paul Mundt <lethal@xxxxxxxxxxxx>
Signed-off-by: Jason Wessel <jason.wessel@xxxxxxxxxxxxx>
---
arch/sh/kernel/kgdb.c | 14 +++++++++++++-
1 files changed, 13 insertions(+), 1 deletions(-)
diff --git a/arch/sh/kernel/kgdb.c b/arch/sh/kernel/kgdb.c
index 3e532d0..1ec03c9 100644
--- a/arch/sh/kernel/kgdb.c
+++ b/arch/sh/kernel/kgdb.c
@@ -237,6 +237,18 @@ int kgdb_arch_handle_exception(int e_vector, int signo,
int err_code,
return -1;
}
+unsigned long kgdb_arch_pc(int exception, struct pt_regs *regs)
+{
+ if (exception == 60)
+ return instruction_pointer(regs) - 2;
+ return instruction_pointer(regs);
+}
+
+void kgdb_arch_set_pc(struct pt_regs *regs, unsigned long ip)
+{
+ regs->pc = ip;
+}
+
/*
* The primary entry points for the kgdb debug trap table entries.
*/
@@ -247,7 +259,7 @@ BUILD_TRAP_HANDLER(singlestep)
local_irq_save(flags);
regs->pc -= instruction_size(__raw_readw(regs->pc - 4));
- kgdb_handle_exception(vec >> 2, SIGTRAP, 0, regs);
+ kgdb_handle_exception(0, SIGTRAP, 0, regs);
local_irq_restore(flags);
}
--
1.6.4.rc1
|
| Previous by Date: | [PATCH 01/37] softlockup: add sched_clock_tick() to avoid kernel warning on kgdb resume, Jason Wessel |
|---|---|
| Next by Date: | [PATCH 12/37] kgdb: core changes to support kdb, Jason Wessel |
| Previous by Thread: | [PATCH 07/37] kgdb,sparc: Add in kgdb_arch_set_pc for sparc, Jason Wessel |
| Next by Thread: | [PATCH 09/37] kgdb,blackfin: Add in kgdb_arch_set_pc for blackfin, Jason Wessel |
| Indexes: | [Date] [Thread] [Top] [All Lists] |