I had the idea to check how the latest snapshot version of uCsim behaves with regard to timer cycle counts. I downloaded SDCC snapshot of r13772, which contains uCsim version 0.7.6.

However, something has changed or broken in the latest uCsim with regard to breakpoint scripts, as my aforementioned benchmarking setup no longer works!

When the breakpoint triggered by the memory write occurs, it appears that the breakpoint script is executed, but uCsim does something different now, because even though the last step of my script is to "run", uCsim immediately stops again and outputs status info for the break event.

The breakpoint script is this:

0> info break
Num Type       Disp Hit   Cnt   Address  Cond
1   event      keep 1     1     0x00500a write
     cmd="timer stop benchmark; timer get benchmark; timer set benchmark 0; timer start benchmark; run"

The output I'm seeing upon a break is as follows:

timer #0("benchmark") OFF 1.611885374669695 sec (12895083 clks)
Simulation started, PC=0x008dbc
Event `write' at rom[0x500a]

Stop at 0x008dbc: (112) Event break
V-IHINZC  Flags= 0x29  41 )  A= 0x00   0 .
0-101001  X= 0x0021  33 !    Y= 0xae44 44612 D
SP= 0x17f6 [SP+1]= 80 128 .  Limit= 0x14ff
0x08dbc  ? ae 27 10       ldw    X,#0x2710
F 0x008dbc
Simulated 0 ticks (0.000e+00 sec)
Host usage: 158.395701 sec, rate=0.000000
0>

Is this a bug? Maybe some kind of race condition between the status output from the breakpoint stopping execution and the last command in the breakpoint script being "run"? It seems to actually process the "run", as evidenced by the "Simulation started..." line, but stops regardless.

Regards,
Basil Hussain


_______________________________________________
Sdcc-user mailing list
Sdcc-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sdcc-user

Reply via email to