summaryrefslogtreecommitdiff
path: root/src/boot/libu64/debug.c
blob: 69dec97d7d328d4df662d6f0ef578ca6a099ee32 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include "global.h"
#include "fault.h"

#if MM_VERSION < N64_US || DEBUG_FEATURES
#define DEBUG_PRINTF osSyncPrintf
#elif IDO_PRINTF_WORKAROUND
#define DEBUG_PRINTF(args) (void)0
#else
#define DEBUG_PRINTF(format, ...) (void)0
#endif

#if MM_VERSION < N64_US
f32 LogUtils_CheckFloatRange(const char* exp, int line, const char* valueName, f32 value, const char* minName, f32 min,
                             const char* maxName, f32 max) {
    if (value < min || max < value) {
        osSyncPrintf("%s %d: range error %s(%f) < %s(%f) < %s(%f)\n", exp, line, minName, min, valueName, value,
                     maxName, max);
    }
    return value;
}
#endif

NORETURN void _dbg_hungup(const char* file, int lineNum) {
    OSId threadId = osGetThreadId(NULL);

    DEBUG_PRINTF("*** HungUp in thread %d, [%s:%d] ***\n", threadId, file, lineNum);
    Fault_AddHungupAndCrash(file, lineNum);
}

NORETURN void Reset(void) {
    DEBUG_PRINTF("*** Reset ***\n");
    Fault_AddHungupAndCrash("Reset", 0);
}