From c54f3efdc2f85554a1604c68d5e9d0f55edfd330 Mon Sep 17 00:00:00 2001 From: Mike Frysinger Date: Wed, 13 Jan 2021 01:22:05 -0500 Subject: [PATCH] sim: watch: fix range expression processing The code supports a [,] syntax, but the logic for handling the 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(-) diff --git a/sim/common/ChangeLog b/sim/common/ChangeLog index 539bab687d4..76d86ea55ef 100644 --- a/sim/common/ChangeLog +++ b/sim/common/ChangeLog @@ -1,3 +1,7 @@ +2021-01-13 Mike Frysinger + + * sim-watch.c (do_watchpoint_create): Parse arg+1 and assign to arg1. + 2021-01-13 Mike Frysinger * 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 d69d42cb954..29ac982b0d2 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.30.2