hardware vs. software watch-points
A watch-point makes the program stop when an expression is true, regardless of the function in which it happens.
A basic example: 'watch a == 1' makes the program stop when variable 'a' has the value... '1'.
Checking when my memory gets over-written with a zero byte:
watch *(char*)0x65476 == 0
Watch-points and other break-points are all seen using 'info break' or 'info watch'.
And use 'delete <watch-point number>' to delete a watch-point, just like with a break-point.
Originally written by