change debug output overflow behaviour

This commit is contained in:
nakst 2021-12-29 09:52:20 +00:00
parent 510d4d866f
commit 65d0edfbff
1 changed files with 9 additions and 0 deletions

View File

@ -97,6 +97,7 @@ void DebugWriteCharacter(uintptr_t character) {
if (!graphics.target || !graphics.target->debugPutBlock) return; if (!graphics.target || !graphics.target->debugPutBlock) return;
if (debugCurrentRow == debugRows) { if (debugCurrentRow == debugRows) {
#if 0
debugCurrentRow = 0; debugCurrentRow = 0;
// uint64_t start = ProcessorReadTimeStamp(); // uint64_t start = ProcessorReadTimeStamp();
@ -104,6 +105,9 @@ void DebugWriteCharacter(uintptr_t character) {
// while (ProcessorReadTimeStamp() < end); // while (ProcessorReadTimeStamp() < end);
graphics.target->debugClearScreen(); graphics.target->debugClearScreen();
#else
return;
#endif
} }
uintptr_t row = debugCurrentRow; uintptr_t row = debugCurrentRow;
@ -411,6 +415,11 @@ void KernelPanic(const char *format, ...) {
} }
#else #else
EsPrint("End of report.\n"); EsPrint("End of report.\n");
if (graphics.target->debugPutData) {
// We put the log data on the screen before and after the panic report in case it gets stuck.
graphics.target->debugPutData((const uint8_t *) kernelLog, KERNEL_LOG_SIZE);
}
#endif #endif
ProcessorHalt(); ProcessorHalt();