]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
Add record_start and record_stop functions.
authorTim Wiederhake <tim.wiederhake@intel.com>
Mon, 21 Nov 2016 15:39:57 +0000 (16:39 +0100)
committerTim Wiederhake <tim.wiederhake@intel.com>
Tue, 14 Feb 2017 09:57:56 +0000 (10:57 +0100)
Signed-off-by: Tim Wiederhake <tim.wiederhake@intel.com>
gdb/ChangeLog

* record.h (record_start, record_stop): New export.
* record.c (record_start, record_stop): New function.

Change-Id: If235d4bde8ec61dab6dbd23e087430e66d2e91a7

gdb/record.c
gdb/record.h

index 15271b2667af140fe8d02e16b7701ac4797cbd92..eff8fe10e19e89f4a493a527d43cd8c61900e6ac 100644 (file)
@@ -93,6 +93,48 @@ record_preopen (void)
 
 /* See record.h.  */
 
+void
+record_start (const char *method, const char *format, int from_tty)
+{
+  if (method == NULL)
+    {
+      if (format == NULL)
+       execute_command_to_string ("record", from_tty);
+      else
+       error (_("Invalid format."));
+    }
+  else if (strcmp (method, "full") == 0)
+    {
+      if (format == NULL)
+       execute_command_to_string ("record full", from_tty);
+      else
+       error (_("Invalid format."));
+    }
+  else if (strcmp (method, "btrace") == 0)
+    {
+      if (format == NULL)
+       execute_command_to_string ("record btrace", from_tty);
+      else if (strcmp (format, "bts") == 0)
+       execute_command_to_string ("record btrace bts", from_tty);
+      else if (strcmp (format, "pt") == 0)
+       execute_command_to_string ("record btrace pt", from_tty);
+      else
+       error (_("Invalid format."));
+    }
+  else
+    error (_("Invalid method."));
+}
+
+/* See record.h.  */
+
+void
+record_stop (int from_tty)
+{
+  execute_command_to_string ("record stop", from_tty);
+}
+
+/* See record.h.  */
+
 int
 record_read_memory (struct gdbarch *gdbarch,
                    CORE_ADDR memaddr, gdb_byte *myaddr,
index e1d4aae98bf7df5d545771c162b11d15cb41d14b..cff4506903cdd11ab039d6974c8881d75e09d83d 100644 (file)
@@ -91,4 +91,12 @@ extern struct target_ops *find_record_target (void);
    it does anything.  */
 extern void record_preopen (void);
 
+/* Start recording with the given METHOD and FORMAT.  NULL means default method
+   or format.  Throw on failure or invalid method / format.  */
+extern void record_start (const char *method, const char *format,
+                         int from_tty);
+
+/* Stop recording.  Throw on failure.  */
+extern void record_stop (int from_tty);
+
 #endif /* _RECORD_H_ */