feature: mirror all diagnostics to syslog, add VESA fallback for gfxd crashes
- syslogDump now outputs all five diagnostic sections (Fault Info, CPU Registers, Process Info, System Info, Call Stack) to serial, matching the on-screen BSOD content - panic() detects if the crash occurred in the gfxd process and falls back to rendering the BSOD directly to the VESA framebuffer via driver.video text drawing, bypassing LVGL entirely - Add DrawChar, DrawString, DrawHex, DrawInt to driver.video for 8x16 bitmap font rendering directly to the framebuffer - Export SHOULD_CRASH flag from svc.gfxd interface so test commands can trigger a deliberate gfxd crash - Add app.divzero with DIV0, PF, and CRASHGFXD test commands - Update doc/src/core/core.panic.md and doc/src/driver/video/driver.video.md
This commit is contained in:
1 parent
97b4460c48
commit
aa28d62e03
7 files changed
+444
-11
No files matched your search
@@ -13,6 +13,10 @@ unit svc.gfxd;
|
||||
|
||||
interface
|
||||
|
||||
var
|
||||
SHOULD_CRASH : boolean; { set to true to intentionally trigger a crash for testing purposes }
|
||||
|
||||
|
||||
procedure init;
|
||||
|
||||
implementation
|
||||
@@ -56,6 +60,12 @@ begin
|
||||
lvgl_handler;
|
||||
driver.video.Flush;
|
||||
end;
|
||||
if SHOULD_CRASH then begin
|
||||
asm
|
||||
XOR EAX, EAX
|
||||
DIV EAX { this will trigger a divide by zero exception (interrupt 0) }
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
|
||||
Reference in new issue
Block a user