Add and expose sanitizing logic

This commit is contained in:
jpirnay
2026-03-08 15:51:05 +01:00
parent b9b60d31ba
commit c464bdede8
3 changed files with 13 additions and 0 deletions
+6
View File
@@ -80,6 +80,12 @@ std::string getLastLogs() {
return output;
}
void sanitizeLogHead() {
if (logHead >= MAX_LOG_LINES) {
logHead = 0;
}
}
void clearLastLogs() {
for (size_t i = 0; i < MAX_LOG_LINES; i++) {
logMessages[i][0] = '\0';
+3
View File
@@ -57,6 +57,9 @@ void logPrintf(const char* level, const char* origin, const char* format, ...);
std::string getLastLogs();
void clearLastLogs();
// Clamps logHead into range without wiping messages — safe to call on panic
// reboots where the panic occurred before begin() ever had a chance to run.
void sanitizeLogHead();
class MySerialImpl : public Print {
public:
+4
View File
@@ -76,6 +76,10 @@ void begin() {
// `clearPanic()` to clear it after dumping
if (!isRebootFromPanic()) {
clearPanic();
} else {
// Panic reboot: preserve logs and panic info, but clamp logHead in case the
// panic occurred before begin() ever ran (e.g. in a static constructor).
sanitizeLogHead();
}
}