As far as I can tell this was a regression in FreeBSD gdb around
Aug 2022 when the default install upgraded from 11.2 to 12.1
# put a read watchpoint on mem
# we expect that the read watchpoint is not triggered in the child
# (as we expect it will be cleared at fork).
+# On FreeBSD directly calling rwatch mem causes an error
+# calling print first fixes that as a workaround
+p mem
rwatch mem
#
continue
Continuing.
Breakpoint 1, main () at clean_after_fork.c:9
9 pid = fork();
+$1 = 0
Hardware read watchpoint 4: mem
Continuing.
Hardware read watchpoint 4: mem