Re: [PATCH 2/4] record: set stop_pc in "record goto" command

Pedro Alves
2015-07-08T13:42:01Z

On 07/08/2015 01:54 PM, Markus Metzger wrote:

> 2015-07-08 Markus Metzger <markus.t.metzger@intel.com>
>
> gdb/
> * record-btrace.c (record_btrace_goto_begin, record_btrace_goto_end)
> record_btrace_goto): Set stop_pc. Call reinit_frame_cache.
> * record-full.c (record_full_goto_entry): Set stop_pc.
>
> testsuite/
> * gdb.btrace/record_goto-step.exp: New.
> ---
> gdb/record-btrace.c | 6 ++++
> gdb/record-full.c | 1 +
> gdb/testsuite/gdb.btrace/record_goto-step.exp | 46 +++++++++++++++++++++++++++
> 3 files changed, 53 insertions(+)
> create mode 100644 gdb/testsuite/gdb.btrace/record_goto-step.exp
>
> diff --git a/gdb/record-btrace.c b/gdb/record-btrace.c
> index 969e01b..3870400 100644
> --- a/gdb/record-btrace.c
> +++ b/gdb/record-btrace.c
> @@ -2227,6 +2227,8 @@ record_btrace_goto_begin (struct target_ops *self)
> btrace_insn_begin (&begin, &tp->btrace);
> record_btrace_set_replay (tp, &begin);
>
> + reinit_frame_cache ();
> + stop_pc = regcache_read_pc (get_current_regcache ());

I think you should do this within record_btrace_set_replay,
instead of doing the same in several places.

Also, I don't think you need the reinit_frame_cache call, as the
registers_changed_ptid calls in
record_btrace_set_replay/record_btrace_stop_replaying take care of
it already.

Thanks,
Pedro Alves