From eb73a14fe29ff4940a206a9961e30c2376412951 Mon Sep 17 00:00:00 2001 From: Nilay Vaish Date: Thu, 6 Feb 2014 16:30:13 -0600 Subject: [PATCH] base: calls abort() from fatal Currently fatal() ends the simulation in a normal fashion. This results in the call stack getting lost when using a debugger and it is not always possible to debug the simulation just from the information provided by the printed error message. Even though the error is likely due to a user's fault, the information available should not be thrown away. Hence, this patch to call abort() from fatal(). --- src/base/misc.hh | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/base/misc.hh b/src/base/misc.hh index 25dcbaa62..e09f2d0c2 100644 --- a/src/base/misc.hh +++ b/src/base/misc.hh @@ -77,11 +77,10 @@ M5_PRAGMA_NORETURN(__exit_message) // This implements a cprintf based fatal() function. fatal() should // be called when the simulation cannot continue due to some condition // that is the user's fault (bad configuration, invalid arguments, -// etc.) and not a simulator bug. fatal() calls exit(1), i.e., a -// "normal" exit with an error code, as opposed to abort() like +// etc.) and not a simulator bug. fatal() calls abort() like // panic() does. // -#define fatal(...) exit_message("fatal", 1, __VA_ARGS__) +#define fatal(...) exit_message("fatal", -1, __VA_ARGS__) void __base_message(std::ostream &stream, const char *prefix, bool verbose, -- 2.30.2