|
|
PanicTable
Table of panic's and possible causes
Introduction
The goal of this page is to help explain various "panic" messages and to propose possible causes.
Details
| panic message | description | location | possible cause(s) |
| unknown interrupt | The default interrupt service routine (ISR) has been triggered. | kern/isr.c | - enabled interrupt bit without properly defining ISR |
| init null lock | init_lock(..) was passed a NULL pointer | kern/lock.c::init_lock | - First parameter to init_lock is NULL |
| acquire null lock | acquire(..) was passed a NULL lock pointer | kern/lock.c::acquire | - First parameter to acquire is NULL |
| acquired too many times | Occurs if a lock has been recursively acquired LOCK_MAX_ACQUIRES times. | kern/lock.c::acquire | - User forgets to `release' the lock |
| - There exists an infinite (or deep) recursive loop that acquires the lock | |||
| acquire | Placed at an unreachable point in code, this should never happen. | kern/lock.c::acquire | - The program counter (PC) or a stack return address has been corrupted |
| is_held null lock | is_held(..) was passed a NULL lock pointer | kern/lock.c::is_held | - First parameter to is_held is NULL |
| release null lock | release(..) was passed a NULL lock pointer | kern/lock.c::release | - First parameter to release is NULL |
| release unheld lock | An free lock was passed to release | kern/lock.c::release | - The lock was already released, uninitialized, or not previously acquired |
| lock held by another | The lock owner is not the current thread | kern/lock.c::release | - The lock was acquired by another thread |
| - The lock was not initialized |
Sign in to add a comment
