aboutsummaryrefslogtreecommitdiff
path: root/src/common/Debugging/Errors.cpp
diff options
context:
space:
mode:
authorjackpoz <giacomopoz@gmail.com>2020-03-09 20:06:13 +0100
committerShauren <shauren.trinity@gmail.com>2021-12-22 22:54:18 +0100
commit1fa4403b8c16ec0aa0a31831df2a77a86ef6642d (patch)
treee53d7227a59271a9f296076c9c2ca40b56111f28 /src/common/Debugging/Errors.cpp
parent2b656aa96707c5cc09358f594dae8c9d5968fe9a (diff)
Core/Common: Allow to show a message when aborting
Add a new ABORT_MSG macro that allows to show a formatted message before stopping the executable (cherry picked from commit 0ddee8a4a03fb5c7ee8d18144ca21cd2baad6f01)
Diffstat (limited to 'src/common/Debugging/Errors.cpp')
-rw-r--r--src/common/Debugging/Errors.cpp14
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