[Linux]如何手動觸發kernel restart

所謂Linux panic就是碰到錯誤狀況時, code裏主動調的一個函數panic(),裏面出不來,會讓cpu重啓。 不容許再亂執行代碼,以便保留現場。 像下面這個例子,就是在kernel fault函數裏檢查到非法無效地址訪問後的錯誤處理,主動調了panic(). 經過訪問地址能夠區分是kernel代碼(>0xC0000000)仍是user space 代碼。函數

writing 'C' to /proc/sysrq-trigger is like sysrq-Cspa

echo c > /proc/sysrq-trigger指針

代碼在: \kernel\drivers\tty\sysrq.ccode

本質上是操做NULL 指針引發crashit

調用路徑: 從下往上 panic die __do_kernel_fault do_page_fault do_DataAbort __dabt_svc sysrq_handle_crash __handle_sysrq write_sysrq_trigger proc_reg_write vfs_write sys_write ret_fast_syscallast

相關文章
相關標籤/搜索