make err fails more clear

This commit is contained in:
dzaima 2021-07-19 23:09:10 +03:00
parent 0d5af28043
commit 78cd23907e
4 changed files with 9 additions and 3 deletions

View File

@ -16,7 +16,7 @@ B type_c1(B t, B x) {
else if (isMd1(x)) r = 4;
else if (isMd2(x)) r = 5;
else if (isNsp(x)) r = 6;
if (r==-1) { print(x); err(": getting type"); }
if (RARE(r==-1)) { print(x); err(": getting type"); }
decR(x);
return m_i32(r);
}

View File

@ -6,8 +6,12 @@
NORETURN NOINLINE void err(char* s) {
puts(s); fflush(stdout);
print_vmStack();
__builtin_trap();
vm_pstLive(); fflush(stdout);
print_vmStack(); fflush(stdout);
puts("CBQN interpreter entered unexpected state, exiting.");
#ifdef DEBUG
__builtin_trap();
#endif
exit(1);
}

View File

@ -8,6 +8,7 @@ static void mm_visitP(void* x);
NORETURN void bqn_exit(i32 code);
u64 mm_heapUsed();
void printAllocStats();
void vm_pstLive();
#ifndef MAP_NORESERVE

View File

@ -11,6 +11,7 @@
#include "../utils/hash.c"
#include "../utils/utf.c"
#include "../utils/file.c"
#include "../utils/mut.c"
#include "../builtins/fns.c"
#include "../builtins/sfns.c"
#include "../builtins/sysfn.c"