void erl_crash_dump(char* file, int line, char* fmt, ...) { va_list args; va_start(args, fmt); erl_crash_dump_v(file, line, fmt, args); va_end(args); }
__decl_noreturn void erl_exit(int n, char *fmt,...) { unsigned int an; va_list args; va_start(args, fmt); save_statistics(); system_cleanup(n); an = abs(n); if (erts_mtrace_enabled) erts_mtrace_exit((Uint32) an); /* Produce an Erlang core dump if error */ if (n > 0 && erts_initialized && (erts_no_crash_dump == 0 || n == ERTS_DUMP_EXIT)) { erl_crash_dump_v((char*) NULL, 0, fmt, args); } /* need to reinitialize va_args thing */ va_end(args); va_start(args, fmt); if (fmt != NULL && *fmt != '\0') erl_error(fmt, args); /* Print error message. */ va_end(args); sys_tty_reset(n); if (n == ERTS_INTR_EXIT) exit(0); else if (n == ERTS_DUMP_EXIT) ERTS_EXIT_AFTER_DUMP(1); else if (n > 0 || n == ERTS_ABORT_EXIT) abort(); exit(an); }