x86: Better emergency codes for core 0
authorBarret Rhoden <brho@cs.berkeley.edu>
Fri, 30 Aug 2013 18:02:05 +0000 (11:02 -0700)
committerBarret Rhoden <brho@cs.berkeley.edu>
Fri, 30 Aug 2013 18:06:28 +0000 (11:06 -0700)
commit0064c5e4efef6fb584572beaf0a1fb04916123d7
treecd3877b2581aa253c375a9c5d172161ee247b6cb
parentc10add9b9f2ffff11c4a722128f138d44828dcdb
x86: Better emergency codes for core 0

Shift-G still works, though I suggest weaning yourself of that.  Ctrl-G
does the same thing (enters the monitor when the core is able to).  This
is the preferred way to enter the monitor.

Ctrl-Q also enters the monitor, but does so directly from IRQ context.
This can be dangerous, but is better than nothing.

Ctrl-B dumps a backtrace and trapframe of the core.  You could do this
manually after a Ctrl-Q, too.

The core that runs the backtrace or monitor is whatever core received
the IRQ.  This is almost always core 0.  Debugging remote cores can be
done from the monitor on core 0.

These codes require interrupts to be enabled.  I don't have a way to
send nmis to core 0 yet, other than from the monitor on another core.
kern/arch/x86/init.c
kern/arch/x86/trap.c
kern/src/manager.c