Data breakpoints
Sometimes you are debugging a very complex system, and there are many code paths that could be modifying a particular piece of data.
Something may even be modifying the data by accident! Like in a language where you manage your own memory - something could be overrunning or writing to a random address.
(It’s easier if the random address is consistent, i.e. deterministic. If not, you need other tactics.)
You could go through and mark each potential path with a breakpoint. But if you have many instances of the data and you’re only interested in watching one of them, you might want to use a data breakpoint.
Their definition is: “Data breakpoints break execution when a value stored at a specified memory address changes. If the value is read but not changed, execution doesn’t break.” (from the Visual Studio documentation)
It’s a useful feature of your debugger, and it can be a lifesaver in these kinds of situations. Give them a try!