diff options
author | jackpoz <giacomopoz@gmail.com> | 2020-03-09 20:06:13 +0100 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2021-12-22 22:54:18 +0100 |
commit | 1fa4403b8c16ec0aa0a31831df2a77a86ef6642d (patch) | |
tree | e53d7227a59271a9f296076c9c2ca40b56111f28 /src/common/Debugging/Errors.cpp | |
parent | 2b656aa96707c5cc09358f594dae8c9d5968fe9a (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.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 |