diff options
author | root <root@phys.ethz.ch> | 2009-12-19 20:23:04 +0100 |
---|---|---|
committer | root <root@phys.ethz.ch> | 2009-12-19 20:25:15 +0100 |
commit | 4ba400c77201a8f9efe595792bfdf264741a85a9 (patch) | |
tree | b9004e491e55af0c366f659bde25a6799d9bb5b2 | |
parent | 155d3ff9361676190ff4483b37a2f7048625cd1e (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.S | 4 | ||||
-rw-r--r-- | 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); |