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.
This commit is contained in:
Markus Metzger
2013-03-11 08:48:38 +00:00
parent 7c1687a966
commit 67c86d0683
4 changed files with 299 additions and 0 deletions

View File

@ -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)
{