FURI_TRACE (useful furi_check() crashes) --nobuild

This commit is contained in:
Willy-JL
2023-10-17 01:59:05 +01:00
parent 5da214f639
commit 133397cb02
2 changed files with 9 additions and 0 deletions

View File

@@ -136,10 +136,12 @@ FURI_NORETURN void __furi_crash() {
if(__furi_check_message == NULL) {
__furi_check_message = "Fatal Error";
#ifndef __FURI_TRACE
} else if(__furi_check_message == (void*)__FURI_ASSERT_MESSAGE_FLAG) {
__furi_check_message = "furi_assert failed";
} else if(__furi_check_message == (void*)__FURI_CHECK_MESSAGE_FLAG) {
__furi_check_message = "furi_check failed";
#endif
}
furi_hal_console_puts("\r\n\033[0;31m[CRASH]");

View File

@@ -23,9 +23,16 @@ extern "C" {
#define FURI_NORETURN noreturn
#endif
#define __FURI_TRACE
// Flags instead of pointers will save ~4 bytes on furi_assert and furi_check calls.
#ifndef __FURI_TRACE
#define __FURI_ASSERT_MESSAGE_FLAG (0x01)
#define __FURI_CHECK_MESSAGE_FLAG (0x02)
#else
#define __FURI_ASSERT_MESSAGE_FLAG __FILE__
#define __FURI_CHECK_MESSAGE_FLAG __FILE__
#endif
/** Crash system */
FURI_NORETURN void __furi_crash();