Debug: Add a function to cause the simulator to create a checkpoint from GDB.
authorAli Saidi <Ali.Saidi@ARM.com>
Thu, 5 May 2011 01:38:27 +0000 (20:38 -0500)
committerAli Saidi <Ali.Saidi@ARM.com>
Thu, 5 May 2011 01:38:27 +0000 (20:38 -0500)
src/sim/debug.cc
src/sim/debug.hh

index e866c13e77f157dd88f1ae1e64567e8a4e69b5d1..bd7924117fc241ab0e143db891053e8be4148ec9 100644 (file)
@@ -38,6 +38,7 @@
 #include "sim/debug.hh"
 #include "sim/eventq.hh"
 #include "sim/sim_events.hh"
+#include "sim/sim_exit.hh"
 
 using namespace std;
 
@@ -88,6 +89,17 @@ schedBreakCycle(Tick when)
     warn("need to stop all queues");
 }
 
+///
+/// Function to cause the simulator to take a checkpoint from the debugger
+///
+void
+takeCheckpoint(Tick when)
+{
+    if (!when)
+        when = curTick() + 1;
+    exitSimLoop("checkpoint", 0, when, 0);
+}
+
 void
 eventqDump()
 {
index ca7a606c629f2db28ecb8bae85a6b157faf2d977..0bec5ecf3203f033b7681c3b19b49b810987ebe6 100644 (file)
 
 #include "base/types.hh"
 
+/** @file This file provides the definitions for some useful debugging
+ * functions. These are intended to be called from a debugger such as
+ * gdb.
+ */
+
+
+/** Cause the simulator to execute a breakpoint
+ * @param when the cycle to break
+ */
 void schedBreakCycle(Tick when);
 
+/** Cause the simulator to return to python to create a checkpoint
+ * @param when the cycle to break
+ */
+void takeCheckpoint(Tick when);
+
+/** Dump all the events currently on the event queue
+ */
+void eventqDump();
+
 int getRemoteGDBPort();
 // Remote gdb base port.  0 disables remote gdb.
 void setRemoteGDBPort(int port);