/** * Copyright (C) Mellanox Technologies Ltd. 2001-2018. ALL RIGHTS RESERVED. * * See file LICENSE for terms. */ #include "assert.h" #include #include #include #include #include #include #include #include void ucs_fatal_error_message(const char *file, unsigned line, const char *function, char *message_buf) { char *message_line, *save_ptr = NULL; ucs_log_flush(); message_line = (message_buf == NULL) ? NULL : strtok_r(message_buf, "\n", &save_ptr); while (message_line != NULL) { ucs_log_fatal_error("%13s:%-4u %s", ucs_basename(file), line, message_line); message_line = strtok_r(NULL, "\n", &save_ptr); } ucs_handle_error(message_buf); abort(); } void ucs_fatal_error_format(const char *file, unsigned line, const char *function, const char *format, ...) { size_t buffer_size = ucs_log_get_buffer_size(); char *buffer; va_list ap; buffer = ucs_alloca(buffer_size + 1); va_start(ap, format); vsnprintf(buffer, buffer_size, format, ap); va_end(ap); ucs_fatal_error_message(file, line, function, buffer); }