[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