diff options
author | mmetzger <mmetzger> | 2013-03-11 08:48:37 +0000 |
---|---|---|
committer | mmetzger <mmetzger> | 2013-03-11 08:48:37 +0000 |
commit | d63ee17bdefcc06c7f15ac49b98fc339337cc5df (patch) | |
tree | 866456318205b51208f86d497d7f5e56dfb3e99b /gdb/target.c | |
parent | ae7a4cc898f02f065634191e684770243b9e4a33 (diff) | |
download | gdb-d63ee17bdefcc06c7f15ac49b98fc339337cc5df.tar.gz |
Add a command to provide a disassembly of the execution trace log.
gdb/
* target.h (target_ops) <to_insn_history, to_insn_history_from,
to_insn_history_range>: New fields.
(target_insn_history): New.
(target_insn_history_from): New.
(target_insn_history_range): New.
* target.c (target_insn_history): New.
(target_insn_history_from): New.
(target_insn_history_range): New.
* record.c: Include cli/cli-utils.h, disasm.h, ctype.h.
(record_insn_history_size): New.
(get_insn_number): New.
(get_context_size): New.
(no_chunk): New.
(get_insn_history_modifiers): New.
(cmd_record_insn_history): New.
(_initialize_record): Add "set/show record instruction-history-size"
command. Add "record instruction-history" command.
Diffstat (limited to 'gdb/target.c')
-rw-r--r-- | gdb/target.c | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/gdb/target.c b/gdb/target.c index e41f0741f85..4bf4574857e 100644 --- a/gdb/target.c +++ b/gdb/target.c @@ -4388,6 +4388,57 @@ target_goto_record (ULONGEST insn) tcomplain (); } +/* See target.h. */ + +void +target_insn_history (int size, int flags) +{ + struct target_ops *t; + + for (t = current_target.beneath; t != NULL; t = t->beneath) + if (t->to_insn_history != NULL) + { + t->to_insn_history (size, flags); + return; + } + + tcomplain (); +} + +/* See target.h. */ + +void +target_insn_history_from (ULONGEST from, int size, int flags) +{ + struct target_ops *t; + + for (t = current_target.beneath; t != NULL; t = t->beneath) + if (t->to_insn_history_from != NULL) + { + t->to_insn_history_from (from, size, flags); + return; + } + + tcomplain (); +} + +/* See target.h. */ + +void +target_insn_history_range (ULONGEST begin, ULONGEST end, int flags) +{ + struct target_ops *t; + + for (t = current_target.beneath; t != NULL; t = t->beneath) + if (t->to_insn_history_range != NULL) + { + t->to_insn_history_range (begin, end, flags); + return; + } + + tcomplain (); +} + static void debug_to_prepare_to_store (struct regcache *regcache) { |