When a watchpoint triggers, the thread’s PC points to the instruction after the instruction that caused the watchpoint to trigger. In some cases, where a memory store instruction is the last instruction in the source line, the PC will point to the source line
after the source line that contains the triggering instruction.
If TotalView displays a question asking if you really want to set a watchpoint on non-global memory, it is telling you that the memory is contained within memory that can change for reasons other than the program changing a variable’s value. For example, you may be setting a watchpoint on stack memory. When the routine on the stack is popped, it will probably be overwritten by a new stack frame, and this change will have nothing to do with your program changing a value.