From 4ba400c77201a8f9efe595792bfdf264741a85a9 Mon Sep 17 00:00:00 2001 From: root Date: Sat, 19 Dec 2009 20:23:04 +0100 Subject: 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. --- i386/i386/locore.S | 4 ++++ xen/console.c | 7 +++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/i386/i386/locore.S b/i386/i386/locore.S index 663db43..e8f7740 100644 --- a/i386/i386/locore.S +++ b/i386/i386/locore.S @@ -798,7 +798,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 c65e6d2..a289b8e 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); -- cgit v1.2.3