summaryrefslogtreecommitdiff
path: root/sim/main.cc
diff options
context:
space:
mode:
authorAli Saidi <saidi@eecs.umich.edu>2004-06-23 17:55:54 -0400
committerAli Saidi <saidi@eecs.umich.edu>2004-06-23 17:55:54 -0400
commit17bfb1540e938406548202f3f1c941857f514c33 (patch)
tree6b39561099e011efbc9f59be4048b1cca4fa96a8 /sim/main.cc
parent231fac0a2b4ed7c882c6d83c279bf2a4d2083726 (diff)
parent06d8f0af5def68e395b58636d5e7d6ca69daa51f (diff)
downloadgem5-17bfb1540e938406548202f3f1c941857f514c33.tar.xz
Merge zizzer:/bk/linux into zeep.eecs.umich.edu:/z/saidi/work/m5-endian
--HG-- extra : convert_revision : d4938c6011173d3017f47fd592c4b5e4c8d543a3
Diffstat (limited to 'sim/main.cc')
-rw-r--r--sim/main.cc13
1 files changed, 13 insertions, 0 deletions
diff --git a/sim/main.cc b/sim/main.cc
index f0d10a67c..54c74fd1a 100644
--- a/sim/main.cc
+++ b/sim/main.cc
@@ -90,6 +90,18 @@ exitNowHandler(int sigtype)
async_exit = true;
}
+/// Abort signal handler.
+void
+abortHandler(int sigtype)
+{
+ cerr << "Program aborted at cycle " << curTick << endl;
+
+#if TRACING_ON
+ // dump trace buffer, if there is one
+ Trace::theLog.dump(cerr);
+#endif
+}
+
/// Simulator executable name
const char *myProgName = "";
@@ -232,6 +244,7 @@ main(int argc, char **argv)
signal(SIGUSR1, dumpStatsHandler); // dump intermediate stats
signal(SIGUSR2, dumprstStatsHandler); // dump and reset stats
signal(SIGINT, exitNowHandler); // dump final stats and exit
+ signal(SIGABRT, abortHandler);
sayHello(cerr);