diff options
Diffstat (limited to 'src/common/Debugging/Errors.cpp')
-rw-r--r-- | src/common/Debugging/Errors.cpp | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/common/Debugging/Errors.cpp b/src/common/Debugging/Errors.cpp index f44f8d9105c..d61f7fa60bb 100644 --- a/src/common/Debugging/Errors.cpp +++ b/src/common/Debugging/Errors.cpp @@ -127,6 +127,20 @@ void Abort(char const* file, int line, char const* function) Crash(formattedMessage.c_str()); } +void Abort(char const* file, int line, char const* function, char const* message, ...) +{ + va_list args; + va_start(args, message); + + std::string formattedMessage = StringFormat("\n%s:%i in %s ABORTED:\n", file, line, function) + FormatAssertionMessage(message, args) + '\n'; + va_end(args); + + fprintf(stderr, "%s", formattedMessage.c_str()); + fflush(stderr); + + Crash(formattedMessage.c_str()); +} + void AbortHandler(int sigval) { // nothing useful to log here, no way to pass args |