summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorroot <root@phys.ethz.ch>2009-12-19 20:23:04 +0100
committerSamuel Thibault <samuel.thibault@ens-lyon.org>2009-12-22 01:58:33 +0100
commitd0bec1fd0dd63ea62214902c096f5d51c4f8e8d6 (patch)
tree09606f233ae67b4fd8938be1375edabbc7b7cc62
parentf67ebd0771424181f8713f1931ee221d306eb683 (diff)
Fix debugger trigger
* i386/i386/locore.S [MACH_XEN] (RET_OFFSET): Define to 8 * xen/console.c (hypcnintr): On pound sign, call kdb_kintr instead of panicing.
-rw-r--r--i386/i386/locore.S4
-rw-r--r--xen/console.c7
2 files changed, 9 insertions, 2 deletions
diff --git a/i386/i386/locore.S b/i386/i386/locore.S
index 51a65c9d..c6401915 100644
--- a/i386/i386/locore.S
+++ b/i386/i386/locore.S
@@ -802,7 +802,11 @@ ast_from_interrupt:
* Call kdb, passing it that register save area.
*/
+#ifdef MACH_XEN
+#define RET_OFFSET 8
+#else /* MACH_XEN */
#define RET_OFFSET 16
+#endif /* MACH_XEN */
ENTRY(kdb_kintr)
movl %ebp,%eax /* save caller`s frame pointer */
diff --git a/xen/console.c b/xen/console.c
index c65e6d29..a289b8e6 100644
--- a/xen/console.c
+++ b/xen/console.c
@@ -112,8 +112,11 @@ static void hypcnintr(int unit, spl_t spl, void *ret_addr, void *regs) {
mb();
console->in_cons++;
#ifdef MACH_KDB
- if (c == (char)'£')
- panic("£ pressed");
+ if (c == (char)'£') {
+ printf("£ pressed\n");
+ kdb_kintr();
+ continue;
+ }
#endif /* MACH_KDB */
if ((tp->t_state & (TS_ISOPEN|TS_WOPEN)))
(*linesw[tp->t_line].l_rint)(c, tp);