How is this conditional register breakpoint really works?
fo <num> <reg> <oper> <val> [<mask> <val2>] Conditional register breakpoint.
reg=Dx,Ax,PC,USP,ISP,VBR,SR. oper:!=,==,<,>,>=,<=,-,!- (-=val to val2 range).
Code:
>fo 0 A0==$21000
Breakpoint added.
>fl
0: A0 == 00021000 [ffffffff 00000000]
>
LEA.L $00021000,A0
ok, that works.
but how is the function of the two 32Bit values in the square brackets?
Is it in a range? Or can I also break the program with a masked bit like:
Code:
>fo 0 d0==$00000004 $00000004
Breakpoint added.
>fl
0: D0 == 00000004 [00000004 00000000]
or
>fo 0 d0==$00000004 $00000004 $00000004
Breakpoint added.
>fl
0: D0 == 00000004 [00000004 00000004]
for move.w #$0004,d0
00c25956 303c 0004 move.w #$0004,d0
Next PC: 00c2595a
>t
Cycles: 4 Chip, 8 CPU. (V=210 H=66 -> V=210 H=70)
D0 00000004 D1 00000000 D2 00000000 D3 00000000
But in no case a Breakpoint 0 triggered.
Code:
>fd
All breakpoints removed.
>fo 0 d0==$00000004
Breakpoint added.
>fl
0: D0 == 00000004 [ffffffff 00000004]
The value in the brackets are not reset with >fd