1. 在内核访问了非法地址时,会在tlbexc处理中调用do_page_fault(arch/mips/mm/fault.c), do_page_fault会调用die("Opps")(arch/mips/kernel/trap.c). 在die中会调用打印现场信息并重启。在现场调试时,如果遇到opps,可以将关心的寄存器放在die中打印出来。
2. coredump是用户态程序访问了非法地址或者执行了非法指令,内核会发送Segfault信号给用户态程序,系统默认的信号处理函数会做Coredump,开发时也可以自己做信号处理函数,打印自己期望的信息。
另外,在内核中出现别的异常时,也可能会调用die函数,添加打印关心信息的方法和Opps相同。