hapeeeeee wrote: > I'll need to test this, I don't think it's right but I haven't looked closely > enough at the code. > > We have two cases we need to support, and one of them only happens on > AArch64/arm64 type architectures, where the watchpoint hit is reported before > the memory is modified. > > On an arm/aarch64 processor, when a watchpoint is triggered, the instruction > is unwound and the processor halts processing with a watchpoint exception. > The value hasn't changed at this point. The debugger has to disable the > watchpoint, instruction step, and then re-enable the watchpoint. It gathers > the new value, and shows the old & new values to the user. > > The bug that we're looking at here, is where a user sets a watchpoint in a > process, the process exits/is killed. The Target still has the watchpoint > present, but it is in a Disabled state. The user starts a new process > session, and sets the watchpoint again. The disabled watchpoint in the Target > is re-enabled. However, instead of collecting a new "current value", the old > "current value" is kept around. The problem is that the old "current value" > is all in terms of the OLD process, which no longer exists. > > And later, when we try to examine that old value, we crash when it can't be > accessed. > > I'm afraid this patch as-is will break watchpoint behavior on aarch64/arm64, > but it's a bit of a guess. I mentioned in the original bug report that I > think there are two changes needed: When a Process has exited, the Target > needs to clear the ValueObject storing the value for the watchpoints it still > has. And when re-enabling, if we have an emtpy ValueObject, we need to > re-collect that value.
I discovered that the current program crashes due to a null pointer of `ValueObjectSP`. This pointer is `reset` when the program is re-executed. Do you mean that we should handle the `ValueObject` itself instead of `ValueObjectSP`? Additionally, I will attempt to test this patch on aarch64. https://github.com/llvm/llvm-project/pull/136682 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits