From: Tim Wiederhake Date: Mon, 21 Nov 2016 15:39:57 +0000 (+0100) Subject: Add record_start and record_stop functions. X-Git-Tag: gdb-8.0-release~674 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=45b196c59065cd2c5b750b78a0329d42f6e924b1;p=thirdparty%2Fbinutils-gdb.git Add record_start and record_stop functions. Signed-off-by: Tim Wiederhake gdb/ChangeLog * record.h (record_start, record_stop): New export. * record.c (record_start, record_stop): New function. Change-Id: If235d4bde8ec61dab6dbd23e087430e66d2e91a7 --- diff --git a/gdb/record.c b/gdb/record.c index 15271b2667a..eff8fe10e19 100644 --- a/gdb/record.c +++ b/gdb/record.c @@ -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, diff --git a/gdb/record.h b/gdb/record.h index e1d4aae98bf..cff4506903c 100644 --- a/gdb/record.h +++ b/gdb/record.h @@ -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_ */