222 va_start(detail_args, detail_fmt); |
222 va_start(detail_args, detail_fmt); |
223 VMError::report_and_die(Thread::current_or_null(), file, line, error_msg, detail_fmt, detail_args); |
223 VMError::report_and_die(Thread::current_or_null(), file, line, error_msg, detail_fmt, detail_args); |
224 va_end(detail_args); |
224 va_end(detail_args); |
225 } |
225 } |
226 |
226 |
|
227 void report_vm_status_error(const char* file, int line, const char* error_msg, |
|
228 int status, const char* detail) { |
|
229 report_vm_error(file, line, error_msg, "error %s(%d), %s", os::errno_name(status), status, detail); |
|
230 } |
|
231 |
227 void report_fatal(const char* file, int line, const char* detail_fmt, ...) |
232 void report_fatal(const char* file, int line, const char* detail_fmt, ...) |
228 { |
233 { |
229 if (Debugging || error_is_suppressed(file, line)) return; |
234 if (Debugging || error_is_suppressed(file, line)) return; |
230 va_list detail_args; |
235 va_list detail_args; |
231 va_start(detail_args, detail_fmt); |
236 va_start(detail_args, detail_fmt); |