Files
mckernel/lib/abort.c
Dominique Martinet d4cd756a91 x86/cpu.c: unhandled page fault: print pre-fault stack
Do basic manual unwinding and print raw stack addresses, with a
suggested invocation of addr2line to pretty-print the result.
2017-10-13 10:02:11 +09:00

36 lines
685 B
C

#include <ihk/debug.h>
#include <ihk/cpu.h>
#include <cls.h>
#include <ihk/monitor.h>
extern struct cpu_local_var *clv;
extern void eventfd(int type);
extern void arch_print_stack();
void panic(const char *msg)
{
if (clv) {
struct ihk_os_cpu_monitor *monitor = cpu_local_var(monitor);
//kprintf("%s: calling eventfd\n", __FUNCTION__);
monitor->status = IHK_OS_MONITOR_PANIC;
eventfd(IHK_OS_EVENTFD_TYPE_STATUS);
}
cpu_disable_interrupt();
kprintf("%s\n", msg);
arch_print_stack();
while (1) {
cpu_halt();
}
}
extern void arch_show_interrupt_context(const void*);
void ihk_mc_debug_show_interrupt_context(const void *reg)
{
arch_show_interrupt_context(reg);
}