[RFA] Resubmit, reverse debugging [0/5]

Michael Snyder
2008-10-08T02:17:11Z

OK, after incorporating various review suggestions,
this patch supercedes the patch of 10/01/2008.

The following change log entries are not part of the patch,
but are provided to show what has changed since last time,
mostly in response to review suggestions.

2008-10-07 Michael Snyder <msnyder@vmware.com>

* target.h (to_set_exec_direction, to_get_exec_direction): Remove.
(to_can_execute_reverse): New method.
(enum exec_direction_kind): Move to inferior.h.
* target.c (update_current_target): Inherit to_can_execute_reverse.
Remove to_set_exec_direction, to_get_exec_direction.
* inferior.h (enum exec_direction_kind): Move from target.h.

* infrun.c (set_exec_direction_func): Move here from reverse.c.
(show_exec_direction_func): Ditto.
(proceed): Consult global execution_direction instead of
target method.
(handle_inferior_event): Ditto.

* reverse.c (set_exec_direction_func): Move to infrun.c
(show_exec_direction_func): Ditto.
(exec_direction_default): Set infrun global variable.
(exec_reverse_once): Consult infrun global direction variable.

* infcmd.c (step_1): Consult infrun global direction variable.
(step_once): Ditto.
(until_next_command): Ditto.
(finish_command): Ditto.

* record.h (record_exec_direction): Delete.
(RECORD_IS_REPLAY): Consult infrun global direction variable.

* record.c: (record_wait_cleanups): Use infrun state variable.
(record_wait): Ditto.
(record_get_exec_direction, record_set_exec_direction): Remove.
(record_can_execute_reverse): New target method.

* remote.c (remote_resume): Use infrun state variable.
(remote_get_exec_direction, remote_set_exec_direction): Remove.
(remote_can_execute_reverse): New target method.

2008-10-07 Michael Snyder <msnyder@vmware.com>

* infrun.c (stepped_into_function): Rename
handle_step_into_function.
(stepped_into_function_backward):
Rename handle_step_into_function_backward.

* reverse.c: Update copyright.
(exec_reverse_once): Add function header comment.
(_initialize_reverse): Use i18n macros for set exec-direction.
2008-10-06 Michael Snyder <msnyder@vmware.com>

* breakpoint.c (breakpoint_silence): Rename to
make_breakpoint_silent.
* breakpoint.h: Ditto.
* infcmd.c (finish_backward): Call make_breakpoint_silent
instead of breakpoint_silence.

* infcmd.c (finish_command): Reject async in reverse.
* infcmd.c (finish_command): Use i18n macros.
* infcmd.c: Minor function reordering.
* infrun.c (step_into_function): Rename to stepped_into_function.
Split into two versions (normal (forward), and reverse).
(handle_inferior_event): Call stepped_into_function or
stepped_into_function_backward, depending on exec_direction.
* infrun.c (handle_inferior_event): Comment rewording.
* remote.c (remote_get_exec_direction): Use i18n macros.
(remote_set_exec_direction): Ditto.
* infrun.c (handle_inferior_event, step_into_function): Formatting.
* infrun.c (handle_inferior_event): Formatting, spelling fix.

* infrun.c (handle_inferior_event): Add special case for
"next" in reverse.
2008-10-05 Michael Snyder <msnyder@promb-2s-dhcp59.eng.vmware.com>

* reverse.c (exec_reverse_once): Call do_cleanups explicitly.
* infrun.c (handle_inferior_event): Fix typo in comment.

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.

* reverse.c (reverse-continue): Remove a comma from docs string,
to avoid confusing output from 'apropos'.