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().
This commit is contained in:
Nilay Vaish
2014-02-06 16:30:13 -06:00
parent bb0e9119e7
commit eb73a14fe2

View File

@@ -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,