Reverse execution branch

2008-06-09  Michael Snyder  <msnyder@specifix.com>
	2006-05-02  Michael Snyder  <msnyder@redhat.com>

	* Target interface for reverse execution.
	* target.h (enum target_waitkind):
	Add new wait event, TARGET_WAITKIND_NO_HISTORY.
	(enum exec_direction_kind): New enum.
	(struct target_ops): New methods to_set_execdir, to_get_execdir.
	* target.c (target_get_execdir): New generic method.
	(target_set_execdir): Ditto.
	* remote.c (remote_get_execdir, remote_set_execdir): New methods.
	(remote_vcont_resume): Jump out if attempting reverse execution.
	(remote_resume): Check for reverse exec direction, and send
	appropriate command to target.
	(remote_wait): Check target response for NO_HISTORY status.
	Also check for empty reply (target doesn't understand "bs" or "bc).
	(_initialize_remote): Add new methods to remote target vector.

	* breakpoint.h (breakpoint_silence): Export.
	* breakpoint.c (breakpoint_silence): New function.
	* infcmd.c (finish_command): Check for reverse exec direction.
	(finish_backward): New function, handle finish cmd in reverse.
	* infrun.c (enum inferior_stop_reason): Add NO_HISTORY reason.
	(handle_inferior_event): Handle TARGET_WAITKIND_NO_HISTORY.
	Handle stepping over a function call in reverse.
	Handle stepping thru a line range in reverse.
	Handle setting a step-resume breakpoint in reverse.
	Handle stepping into a function in reverse.
	Handle stepping between line ranges in reverse.
	(print_stop_reason): Print reason for NO_HISTORY.

	2006-03-31  Michael Snyder  <msnyder@redhat.com>
	User interface for reverse execution.
	* Makefile.in (reverse.c): New file.
	* reverse.c: New file.  User interface for reverse execution.
Reverse execution branch

2008-06-09  Michael Snyder  <msnyder@specifix.com>
	2006-05-02  Michael Snyder  <msnyder@redhat.com>

	* Target interface for reverse execution.
	* target.h (enum target_waitkind):
	Add new wait event, TARGET_WAITKIND_NO_HISTORY.
	(enum exec_direction_kind): New enum.
	(struct target_ops): New methods to_set_execdir, to_get_execdir.
	* target.c (target_get_execdir): New generic method.
	(target_set_execdir): Ditto.
	* remote.c (remote_get_execdir, remote_set_execdir): New methods.
	(remote_vcont_resume): Jump out if attempting reverse execution.
	(remote_resume): Check for reverse exec direction, and send
	appropriate command to target.
	(remote_wait): Check target response for NO_HISTORY status.
	Also check for empty reply (target doesn't understand "bs" or "bc).
	(_initialize_remote): Add new methods to remote target vector.

	* breakpoint.h (breakpoint_silence): Export.
	* breakpoint.c (breakpoint_silence): New function.
	* infcmd.c (finish_command): Check for reverse exec direction.
	(finish_backward): New function, handle finish cmd in reverse.
	* infrun.c (enum inferior_stop_reason): Add NO_HISTORY reason.
	(handle_inferior_event): Handle TARGET_WAITKIND_NO_HISTORY.
	Handle stepping over a function call in reverse.
	Handle stepping thru a line range in reverse.
	Handle setting a step-resume breakpoint in reverse.
	Handle stepping into a function in reverse.
	Handle stepping between line ranges in reverse.
	(print_stop_reason): Print reason for NO_HISTORY.

	2006-03-31  Michael Snyder  <msnyder@redhat.com>
	User interface for reverse execution.
	* Makefile.in (reverse.c): New file.
	* reverse.c: New file.  User interface for reverse execution.
2007-04-18  Daniel Jacobowitz  <dan@codesourcery.com>

	* arm-tdep.c (arm_scan_epilogue): New.
	(arm_make_prologue_cache): Use it.
	(arm_epilogue_unwind_sniffer): New.
	(arm_gdbarch_init): Register it.
2007-04-18  Daniel Jacobowitz  <dan@codesourcery.com>

	* arm-tdep.c (arm_scan_epilogue): New.
	(arm_make_prologue_cache): Use it.
	(arm_epilogue_unwind_sniffer): New.
	(arm_gdbarch_init): Register it.
2007-04-18  Daniel Jacobowitz  <dan@codesourcery.com>

	* infcmd.c (finish_backwards): Correct check for whether to back
	up after finishing.
2007-04-18  Daniel Jacobowitz  <dan@codesourcery.com>

	* infcmd.c (finish_backwards): Correct check for whether to back
	up after finishing.
2008-06-21  Michael Snyder  <msnyder@specifix.com>

	* gdbfreeplay-front.c: New file.  Extended gdbreplay.
	* gdbfreeplay-back.c: New file.
	* gdbfreeplay-i386.c: New file.
	* gdbfreeplay.h: New file.
	* remote-breakpoint.c: New file.
	* remote-breakpoint.h: New file.
	* Makefile.in: Add rules for gdb-freeplay.
	* configure.srv: Ditto.
	* configure.ac: Ditto.
	* configure: Regenerate.
2008-06-21  Michael Snyder  <msnyder@specifix.com>

	* gdbfreeplay-front.c: New file.  Extended gdbreplay.
	* gdbfreeplay-back.c: New file.
	* gdbfreeplay-i386.c: New file.
	* gdbfreeplay.h: New file.
	* remote-breakpoint.c: New file.
	* remote-breakpoint.h: New file.
	* Makefile.in: Add rules for gdb-freeplay.
	* configure.srv: Ditto.
	* configure.ac: Ditto.
	* configure: Regenerate.
2008-06-21  Michael Snyder  <msnyder@specifix.com>

	* gdbfreeplay-i386.c (target_compose_T_packet): Add default return.
	(target_compose_g_packet): New function.
	* gdbfreeplay.h (target_compose_g_packet): Export.
	* gdbfreeplay-back.c (handle_special_case): Give correct args
	for target_compose_T_packet.
	(fallbacks): Add handling for 'G', 'M', 'X', and 'g'.
2008-06-21  Michael Snyder  <msnyder@specifix.com>

	* gdbfreeplay-i386.c (target_compose_T_packet): Add default return.
	(target_compose_g_packet): New function.
	* gdbfreeplay.h (target_compose_g_packet): Export.
	* gdbfreeplay-back.c (handle_special_case): Give correct args
	for target_compose_T_packet.
	(fallbacks): Add handling for 'G', 'M', 'X', and 'g'.
2008-06-21  Michael Snyder  <msnyder@specifix.com>

	* gdbfreeplay-i386.c (target_pc_from_g): Accept a char * instead
	of a FILE *.
	* gdbfreeplay.h (target_pc_from_g): Change prototype.
	* gdbfreeplay-back.c (scan_gdbreplay_file): Change call.
2008-06-21  Michael Snyder  <msnyder@specifix.com>

	* gdbfreeplay-i386.c (target_pc_from_g): Accept a char * instead
	of a FILE *.
	* gdbfreeplay.h (target_pc_from_g): Change prototype.
	* gdbfreeplay-back.c (scan_gdbreplay_file): Change call.
2008-06-21  Michael Snyder  <msnyder@specifix.com>

	* gdbfreeplay-back.c: Clean up round, comments, remove #if 0 etc.
	* gdbfreeplay-i386.c: Ditto.
2008-06-21  Michael Snyder  <msnyder@specifix.com>

	* gdbfreeplay-back.c: Clean up round, comments, remove #if 0 etc.
	* gdbfreeplay-i386.c: Ditto.
2008-06-21  Michael Snyder  <msnyder@specifix.com>

	Add support for 'O' packet output.
	* remote-breakpoint.h (PLAY_O_PACKETS): New enum const.
	* gdbfreeplay-back.c (StopFrame): Discard gpos, replace with Opos.
	(scan_gdbreplay_file): Record Opos for frame if 'O' packet found.
	(frame_replay_O_packets): New function.
	(freeplay_find_event): Call frame_replay_O_packets.
	(handle_special_case): Pass PLAY_O_PACKETS to freeplay_find_event.
	Add temporary support for "monitor gdbfreeplay-echo" command
	(just for testing).
2008-06-21  Michael Snyder  <msnyder@specifix.com>

	Add support for 'O' packet output.
	* remote-breakpoint.h (PLAY_O_PACKETS): New enum const.
	* gdbfreeplay-back.c (StopFrame): Discard gpos, replace with Opos.
	(scan_gdbreplay_file): Record Opos for frame if 'O' packet found.
	(frame_replay_O_packets): New function.
	(freeplay_find_event): Call frame_replay_O_packets.
	(handle_special_case): Pass PLAY_O_PACKETS to freeplay_find_event.
	Add temporary support for "monitor gdbfreeplay-echo" command
	(just for testing).
2008-06-21  Michael Snyder  <msnyder@specifix.com>

	Add support for 'R' packet (restart).
	* gdbfreeplay-back.c (handle_special_case).  Add support for 'R'.
	Remove support for "monitor gdbfreeplay-echo".
2008-06-21  Michael Snyder  <msnyder@specifix.com>

	Add monitor gdbreplay-next command.
	* gdbfreeplay-back.c (freeplay_show_next_commands): New function.
	Echo the next set of gdb commands, in the manner of gdbreplay.
	(handle_special_case): Handle monitor gdbreplay-next command.
	(fallbacks): Catch any unhandled qRcmd requests.
2008-06-21  Michael Snyder  <msnyder@specifix.com>

	* gdbfreeplay-back.c (handle_special_case): Silence gcc warning.
	* gdbfreeplay-i386.c (target_compose_g_packet): Ditto.
2008-06-21  Michael Snyder  <msnyder@specifix.com>

	* gdbfreeplay-back.c (handle_special_case): Silence gcc warning.
	* gdbfreeplay-i386.c (target_compose_g_packet): Ditto.