diff options
author | root <root@phys.ethz.ch> | 2009-12-19 20:23:04 +0100 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2009-12-22 01:58:33 +0100 |
commit | d0bec1fd0dd63ea62214902c096f5d51c4f8e8d6 (patch) | |
tree | 09606f233ae67b4fd8938be1375edabbc7b7cc62 | |
parent | f67ebd0771424181f8713f1931ee221d306eb683 (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 51a65c9..c640191 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 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); |