[patch v4 04/24] record-btrace: fix insn range in function call history

Jan Kratochvil jan.kratochvil@redhat.com
Sun Aug 18 19:06:00 GMT 2013


On Wed, 03 Jul 2013 11:14:14 +0200, Markus Metzger wrote:
> With the "/i" modifier, we print the instruction number range in the
> "record function-call-history" command as [begin, end).
> 
> It would be more intuitive if we printed the range as [begin, end].
> 
> 2013-07-03  Markus Metzger  <markus.t.metzger@intel.com>
> 
> 	* record-btrace.c (btrace_call_history_insn_range): Print
> 	insn range as [begin, end].
> 
> 
> ---
>  gdb/record-btrace.c |    8 ++++++--
>  1 files changed, 6 insertions(+), 2 deletions(-)
> 
> diff --git a/gdb/record-btrace.c b/gdb/record-btrace.c
> index 2e7c639..d9a2ba7 100644
> --- a/gdb/record-btrace.c
> +++ b/gdb/record-btrace.c
> @@ -425,10 +425,14 @@ static void
>  btrace_call_history_insn_range (struct ui_out *uiout,
>  				const struct btrace_function *bfun)
>  {
> -  unsigned int begin, end;
> +  unsigned int begin, end, size;
> +
> +  size = VEC_length (btrace_insn_s, bfun->insn);
> +  if (size == 0)
> +    return;

The current code seems to assert INSN cannot be empty.
So 'if (size == 0)' should be replaced by gdb_assert or removed at all.


>  
>    begin = bfun->insn_offset;
> -  end = begin + VEC_length (btrace_insn_s, bfun->insn);
> +  end = begin + size - 1;
>  
>    ui_out_field_uint (uiout, "insn begin", begin);
>    ui_out_text (uiout, "-");
> -- 
> 1.7.1



More information about the Gdb-patches mailing list