diff options
author | Markus Metzger <mmetzger@sourceware.org> | 2013-03-11 08:42:55 +0000 |
---|---|---|
committer | Markus Metzger <mmetzger@sourceware.org> | 2013-03-11 08:42:55 +0000 |
commit | d02ed0bbfa8046dc0a059583747822b6f92b6235 (patch) | |
tree | 9cc7021800059008d287141d40b0503defa9e86e /gdb/target.c | |
parent | b48d48ebed2efed429a1e6b92603d784b703a4ab (diff) | |
download | gdb-d02ed0bbfa8046dc0a059583747822b6f92b6235.zip gdb-d02ed0bbfa8046dc0a059583747822b6f92b6235.tar.gz gdb-d02ed0bbfa8046dc0a059583747822b6f92b6235.tar.bz2 |
Split record.h into record.h and record-full.h.
Split record.c into record.c and record-full.c.
The split leaves the command part in record.c and moves the target part into
record-full.c.
gdb/
* record.h: Split into this and ...
* record-full.h: ... this.
* record.c: Split into this and ...
* record-full.c: ... this.
* target.h (target_ops): Add new fields to_info_record,
to_save_record, to_delete_record, to_record_is_replaying,
to_goto_record_begin, to_goto_record_end, to_goto_record.
(target_info_record): New.
(target_save_record): New.
(target_supports_delete_record): New.
(target_delete_record): New.
(target_record_is_replaying): New.
(target_goto_record_begin): New.
(target_goto_record_end): New.
(target_goto_record): New.
* target.c (target_info_record): New.
(target_save_record): New.
(target_supports_delete_record): New.
(target_delete_record): New.
(target_record_is_replaying): New.
(target_goto_record_begin): New.
(target_goto_record_end): New.
(target_goto_record): New.
* record.h: Declare struct cmd_list_element.
(record_cmdlist): New declaration.
(set_record_cmdlist): New declaration.
(show_record_cmdlist): New declaration.
(info_record_cmdlist): New declaration.
(cmd_record_goto): New declaration.
* record.c: Remove unnecessary includes.
Include inferior.h.
(cmd_record_goto): Remove declaration.
(record_cmdlist): Now extern. Initialize.
(set_record_cmdlist): Now extern. Initialize.
(show_record_cmdlist): Now extern. Initialize.
(info_record_cmdlist): Now extern. Initialize.
(find_record_target): New.
(require_record_target): New.
(cmd_record_start): Update.
(cmd_record_delete): Remove target-specific code.
Call target_delete_record.
(cmd_record_stop): Unpush any record target.
(set_record_insn_max_num): Move to record-full.c
(set_record_command): Add comment.
(show_record_command): Add comment.
(info_record_command): Update comment.
Remove target-specific code.
Call the record target's to_info_record.
(cmd_record_start): New.
(cmd_record_goto): Now extern.
Remove target-specific code.
Call target_goto_begin, target_goto_end, or target_goto.
(_initialize_record): Move record target ops initialization to
record-full.c.
Change "record" command help text.
Move "record restore", "record set", and "record show" commands to
record-full.c.
* Makefile.in (SFILES): Add record-full.c.
(HFILES_NO_SRCDIR): Add record-full.h.
(COMMON_OBS): Add record-full.o.
* amd64-linux-tdep.c: Include record-full.h instead of record.h.
* arm-tdep.c: Include record-full.h.
* i386-linux-tdep.c: Include record-full.h instead of record.h.
* i386-tdep.c: Include record-full.h.
* infrun.c: Include record-full.h.
* linux-record.c: Include record-full.h.
* moxie-tdep.c: Include record-full.h.
* record-full.c: Include record-full.h.
Change module comment.
(set_record_full_cmdlist): New.
(show_record_full_cmdlist): New.
(record_full_cmdlist): New.
(record_goto_insn): New declaration.
(record_save): New declaration.
(record_check_insn_num): Change query string.
(record_info): New.
(record_delete): New.
(record_is_replaying): New.
(record_goto_entry): New.
(record_goto_begin): New.
(record_goto_end): New.
(record_goto): New.
(init_record_ops): Update.
(init_record_core_ops): Update.
(cmd_record_save): Rename to record_save. Remove target and arg checks.
(cmd_record_start): New.
(set_record_insn_max_num): Moved from record.c
(set_record_full_command): New.
(show_record_full_command): New.
(_initialize_record_full): New.
Diffstat (limited to 'gdb/target.c')
-rw-r--r-- | gdb/target.c | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/gdb/target.c b/gdb/target.c index dd20184..efd5f63 100644 --- a/gdb/target.c +++ b/gdb/target.c @@ -4241,6 +4241,136 @@ target_read_btrace (struct btrace_target_info *btinfo, return NULL; } +/* See target.h. */ + +void +target_info_record (void) +{ + struct target_ops *t; + + for (t = current_target.beneath; t != NULL; t = t->beneath) + if (t->to_info_record != NULL) + { + t->to_info_record (); + return; + } + + tcomplain (); +} + +/* See target.h. */ + +void +target_save_record (char *filename) +{ + struct target_ops *t; + + for (t = current_target.beneath; t != NULL; t = t->beneath) + if (t->to_save_record != NULL) + { + t->to_save_record (filename); + return; + } + + tcomplain (); +} + +/* See target.h. */ + +int +target_supports_delete_record (void) +{ + struct target_ops *t; + + for (t = current_target.beneath; t != NULL; t = t->beneath) + if (t->to_delete_record != NULL) + return 1; + + return 0; +} + +/* See target.h. */ + +void +target_delete_record (void) +{ + struct target_ops *t; + + for (t = current_target.beneath; t != NULL; t = t->beneath) + if (t->to_delete_record != NULL) + { + t->to_delete_record (); + return; + } + + tcomplain (); +} + +/* See target.h. */ + +int +target_record_is_replaying (void) +{ + struct target_ops *t; + + for (t = current_target.beneath; t != NULL; t = t->beneath) + if (t->to_record_is_replaying != NULL) + return t->to_record_is_replaying (); + + return 0; +} + +/* See target.h. */ + +void +target_goto_record_begin (void) +{ + struct target_ops *t; + + for (t = current_target.beneath; t != NULL; t = t->beneath) + if (t->to_goto_record_begin != NULL) + { + t->to_goto_record_begin (); + return; + } + + tcomplain (); +} + +/* See target.h. */ + +void +target_goto_record_end (void) +{ + struct target_ops *t; + + for (t = current_target.beneath; t != NULL; t = t->beneath) + if (t->to_goto_record_end != NULL) + { + t->to_goto_record_end (); + return; + } + + tcomplain (); +} + +/* See target.h. */ + +void +target_goto_record (ULONGEST insn) +{ + struct target_ops *t; + + for (t = current_target.beneath; t != NULL; t = t->beneath) + if (t->to_goto_record != NULL) + { + t->to_goto_record (insn); + return; + } + + tcomplain (); +} + static void debug_to_prepare_to_store (struct regcache *regcache) { |