[PATCH 2/2] sim: watch: fix range expression processing

Andrew Burgess andrew.burgess@embecosm.com
Wed Jan 13 10:15:39 GMT 2021


* Mike Frysinger via Gdb-patches <gdb-patches@sourceware.org> [2021-01-13 01:40:22 -0500]:

> The code supports a <start>[,<end>] syntax, but the logic for handling
> the <end> check was broken: it would detect the first byte was ",", but
> then include that in the strtoul call meaning the result is always 0.
> Further, it (re)assigned to arg0 when it meant arg1 which means this
> code always processed a range expression as 0,0.  Oops.
> ---
>  sim/common/ChangeLog   | 4 ++++
>  sim/common/sim-watch.c | 2 +-
>  2 files changed, 5 insertions(+), 1 deletion(-)

Both patches in this series LGTM.

Thanks,
Andrew


> 
> diff --git a/sim/common/ChangeLog b/sim/common/ChangeLog
> index 539bab687d46..76d86ea55ef8 100644
> --- a/sim/common/ChangeLog
> +++ b/sim/common/ChangeLog
> @@ -1,3 +1,7 @@
> +2021-01-13  Mike Frysinger  <vapier@gentoo.org>
> +
> +	* sim-watch.c (do_watchpoint_create): Parse arg+1 and assign to arg1.
> +
>  2021-01-13  Mike Frysinger  <vapier@gentoo.org>
>  
>  	* sim-events.c (sim_events_watch_sim): Change byte_order type to
> diff --git a/sim/common/sim-watch.c b/sim/common/sim-watch.c
> index d69d42cb9540..29ac982b0d2a 100644
> --- a/sim/common/sim-watch.c
> +++ b/sim/common/sim-watch.c
> @@ -255,7 +255,7 @@ do_watchpoint_create (SIM_DESC sd,
>  
>    (*point)->arg0 = strtoul (arg, &arg, 0);
>    if (arg[0] == ',')
> -    (*point)->arg0 = strtoul (arg, NULL, 0);
> +    (*point)->arg1 = strtoul (arg + 1, NULL, 0);
>    else
>      (*point)->arg1 = (*point)->arg0;
>  
> -- 
> 2.28.0
> 


More information about the Gdb-patches mailing list