2008-09-30  Michael Snyder  <msnyder@vmware.com>
	Target interface for reverse debugging.
	* 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.
2008-09-30  Michael Snyder  <msnyder@vmware.com>
	Target interface for reverse debugging.
	* 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.
2008-09-30  Michael Snyder  <msnyder@vmware.com>

	Remote interface for reverse debugging.
	* 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.
2008-09-30  Michael Snyder  <msnyder@vmware.com>

	Remote interface for reverse debugging.
	* 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.
2008-09-30  Michael Snyder  <msnyder@vmware.com>
	Event handling interface for reverse debugging.
	* 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.
2008-09-30  Michael Snyder  <msnyder@vmware.com>
	Event handling interface for reverse debugging.
	* 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.
Take out 'FIXME' comments
2008-09-30  Michael Snyder  <msnyder@vmware.com>

	* 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.
2008-09-30  Michael Snyder  <msnyder@vmware.com>

	* 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.
2008-09-30  Michael Snyder  <msnyder@vmware.com>

	User interface for reverse execution.
	* Makefile.in (reverse.c): New file.
	* reverse.c: New file.  User interface for reverse execution.
2008-09-30  Michael Snyder  <msnyder@vmware.com>

	User interface for reverse execution.
	* Makefile.in (reverse.c): New file.
	* reverse.c: New file.  User interface for reverse execution.
2008-09-30  Michael Snyder  <msnyder@vmware.com>

	* gdb.texinfo: Add documentation for reverse execution.
2008-09-30  Hui Zhu  <teawater@gmail.com>
	Add process record and replay to GDB.
	* record.c, record.h: New files. Record and reverse target.
	* gdbarch.sh: New methods process_record and process_record_dasm.
	* gdbarch.c, gdbarch.h: Re-generate.
	* target.h (enum strata): Add record_stratum.
	* target.h (target_ops): Add a element "to_support_record_wait".
	Default value is 0. meaning that this target doesn't support record
	wait.
	* target.c: Add include of "record.h".
	(update_current_target): Set the real beneath function.
	(add_target): Set the default value of "to_support_record_wait".
	pointers.
 	* Makefile.in: Add files record.c, record.o.
2008-09-30  Hui Zhu  <teawater@gmail.com>

	Add process record and replay to Linux.
	* linux-record.c, linux-record.h: New files.
	* config/i386/linux.mh: Add linux-record.o to NATDEPFILES.
	* Makefile.in: Add files linux-record.c, linux-record.o.
2008-09-30  Hui Zhu  <teawater@gmail.com>

	Add process record and replay to i386 architecture.
	* i386-linux-tdep.c (linux_record_tdep): New static variable.
	I386 Linux record target-dependent stuff.
	(i386_linux_intx80_sysenter_record): New function. Record the
	running message of I386 Linux system call.
	(i386_linux_init_ab): Initialize the linux_record_tdep. Add
	i386_linux_intx80_sysenter_record to struct tdep.
	* i386-tdep.c (i386_record_modrm, i386_record_lea_modrm_addr,
	i386_record_lea_modrm, i386_record): New functions. Record the
	running message of I386 instruction.
	(i386_gdbarch_init): Add i386_record to struct gdbarch.
	* i386-tdep.h (gdbarch_tdep): Add elements "i386_intx80_record"
	and "i386_sysenter_record" to be the interfaces that record the
	running message of instruction "intx80" and "sysenter".
	* gdbarch.sh: Change process_record and process_record_dasm
	to multi-arch model.
	* gdbarch.c, gdbarch.h: Regenerate.
2008-10-02  Michael Snyder  <msnyder@vmware.com>

	* reverse.c (reverse-continue): Remove a comma from docs string,
	to avoid confusing output from 'apropos'.
2008-10-02  Michael Snyder  <msnyder@vmware.com>

	* record.c (record_open): Call target_can_async_p() instead
	of relying on a global variable.
	* record.h (record_linux_async_permitted): Delete.
	* linux-nat.h (record_linux_async_permitted): Delete reference.
2008-10-04  Michael Snyder  <msnyder@vmware.com>

	* target.c, target.h: Rename execdir to exec_direction.
	* record.c, record.h: Ditto.
	* reverse.c: Ditto.
	* remote.c: Ditto.

	* reverse.c (show_exec_direction_func): Don't error, just inform.
2008-10-04  Michael Snyder  <msnyder@vmware.com>

	* target.c, target.h: Rename execdir to exec_direction.
	* record.c, record.h: Ditto.
	* reverse.c: Ditto.
	* remote.c: Ditto.

	* reverse.c (show_exec_direction_func): Don't error, just inform.
2008-10-04  Michael Snyder  <msnyder@vmware.com>

	* target.c, target.h: Rename execdir to exec_direction.
	* record.c, record.h: Ditto.
	* reverse.c: Ditto.
	* remote.c: Ditto.

	* reverse.c (show_exec_direction_func): Don't error, just inform.