1 /* Process record and replay target for GDB, the GNU debugger. 2 3 Copyright (C) 2008-2013 Free Software Foundation, Inc. 4 5 This file is part of GDB. 6 7 This program is free software; you can redistribute it and/or modify 8 it under the terms of the GNU General Public License as published by 9 the Free Software Foundation; either version 3 of the License, or 10 (at your option) any later version. 11 12 This program is distributed in the hope that it will be useful, 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 GNU General Public License for more details. 16 17 You should have received a copy of the GNU General Public License 18 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 19 20 #ifndef _RECORD_H_ 21 #define _RECORD_H_ 22 23 struct cmd_list_element; 24 25 #define RECORD_IS_USED (current_target.to_stratum == record_stratum) 26 27 extern unsigned int record_debug; 28 29 /* Allow record targets to add their own sub-commands. */ 30 extern struct cmd_list_element *record_cmdlist; 31 extern struct cmd_list_element *set_record_cmdlist; 32 extern struct cmd_list_element *show_record_cmdlist; 33 extern struct cmd_list_element *info_record_cmdlist; 34 35 /* A list of flags specifying what record target methods should print. */ 36 enum record_print_flag 37 { 38 /* Print the source file and line (if applicable). */ 39 record_print_src_line = (1 << 0), 40 41 /* Print the instruction number range (if applicable). */ 42 record_print_insn_range = (1 << 1), 43 }; 44 45 /* Wrapper for target_read_memory that prints a debug message if 46 reading memory fails. */ 47 extern int record_read_memory (struct gdbarch *gdbarch, 48 CORE_ADDR memaddr, gdb_byte *myaddr, 49 ssize_t len); 50 51 /* The "record goto" command. */ 52 extern void cmd_record_goto (char *arg, int from_tty); 53 54 /* The default "to_disconnect" target method for record targets. */ 55 extern void record_disconnect (struct target_ops *, char *, int); 56 57 /* The default "to_detach" target method for record targets. */ 58 extern void record_detach (struct target_ops *, char *, int); 59 60 /* The default "to_mourn_inferior" target method for record targets. */ 61 extern void record_mourn_inferior (struct target_ops *); 62 63 /* The default "to_kill" target method for record targets. */ 64 extern void record_kill (struct target_ops *); 65 66 #endif /* _RECORD_H_ */ 67