Operating System Debugging
- The recording of errors during a program's execution requires running error-tracing code while the program executes, which, if done on OS code, will make the operating system run very slow due to this extra error-tracing code that runs in the background.
- The OS makes frequent contact with hardware, so it is difficult to trace code-related (software) errors.
- For regular program debugging, the programmer could use user-level debugging tools, such as debuggers or performance utilities, which cannot be applied to OS code (since, if the OS fails, it won't provide these services.)
- If an error occurs with the file system, which is used in storing files, saving a core dump will be impossible if the file system fails.
As such, a solution to the issues above would be to save a core dump at the time when operating system code fails to an especially-dedicated section of the disk that the file system doesn't control. This way, even if the file system fails, the data of the core dump could be safely saved and later accessed by the system programmers for debugging purposes.