void crit_err_hdlr(int sig_num, siginfo_t* info, void* ucontext) { FILE* backtraceFile; write_backtrace(stderr, sig_num, info, ucontext); const char* backtraceFilePath = "backtrace.txt"; backtraceFile = fopen(backtraceFilePath, "w"); write_backtrace(backtraceFile, sig_num, info, ucontext); fclose(backtraceFile); exit(EXIT_FAILURE); }
static void _out_of_memory(int size) { (void)fprintf(stderr, "\n" PREFIX "\n" PREFIX "Out of memory, failed to allocate %i bytes\n" PREFIX "\n", size); write_backtrace(); exit(EXIT_CODE); }
static void _negative_length(OOC_LEN len) { (void)fprintf(stderr, "\n" PREFIX "\n" PREFIX "NewObject: Negative array length %i\n" PREFIX "\n", len); write_backtrace(); exit(EXIT_CODE); }
void _runtime_error(const char* msg, RT0__Module mid, OOC_INT32 pos) { (void)fprintf(stderr, "\n" PREFIX "\n" PREFIX "Runtime error in module %s at pos " OOC_INT32_FORMAT "\n" PREFIX "%s\n" PREFIX "\n", mid->name, pos, msg); write_backtrace(); exit(EXIT_CODE); }