panic vs fatal fixes in bus.cc
authorSteve Reinhardt <stever@eecs.umich.edu>
Fri, 13 May 2005 04:28:42 +0000 (00:28 -0400)
committerSteve Reinhardt <stever@eecs.umich.edu>
Fri, 13 May 2005 04:28:42 +0000 (00:28 -0400)
base/misc.hh:
    Add some comments explaining the difference between
    panic() and fatal().

--HG--
extra : convert_revision : 876f0c98276fa1060c0589dc179022a297a8ed2e

base/misc.hh

index a4f9a99c52542553a0b35a3781ebb685eee09f23..ac5eab1cb86ef6bafa532c4d1b954dd9d643d9ad 100644 (file)
 #include "base/cprintf.hh"
 
 //
-// This implements a cprintf based panic
+// This implements a cprintf based panic() function.  panic() should
+// be called when something happens that should never ever happen
+// regardless of what the user does (i.e., an acutal m5 bug).  panic()
+// calls abort which can dump core or enter the debugger.
+//
 //
 void __panic(const std::string&, cp::ArgList &, const char*, const char*, int)
     __attribute__((noreturn));
@@ -44,7 +48,12 @@ void __panic(const std::string&, cp::ArgList &, const char*, const char*, int)
     __panic__(args, cp::ArgListNull())
 
 //
-// This implements a cprintf based fatal
+// 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
+// panic() does.
 //
 void __fatal(const std::string&, cp::ArgList &, const char*, const char*, int)
     __attribute__((noreturn));