Files
clang-p2996/lldb/test/Shell/Watchpoint/Inputs/watchpoint.in
Med Ismail Bennani 0dd62ace2e [lldb] Disable variable watchpoints when going out of scope
If we use a variable watchpoint with a condition using a scope variable,
if we go out-of-scope, the watpoint remains active which can the
expression evaluator to fail to parse the watchpoint condition (because
of the missing varible bindings).

This was discovered after `watchpoint_callback.test` started failing on
the green dragon bot.

This patch should address that issue by setting an internal breakpoint
on the return addresss of the current frame when creating a variable
watchpoint. The breakpoint has a callback that will disable the watchpoint
if the the breakpoint execution context matches the watchpoint execution
context.

This is only enabled for local variables.

This patch also re-enables the failing test following e1086384e5.

rdar://109574319

Differential Revision: https://reviews.llvm.org/D151366

Signed-off-by: Med Ismail Bennani <ismail@bennani.ma>
2023-06-07 16:52:11 -07:00

14 lines
373 B
Plaintext

breakpoint set -p "Break here"
r
watchpoint set variable val
watchpoint modify -c "val == 1"
c
# CHECK: Watchpoint 1 hit:
# CHECK-NEXT: old value: 0
# CHECK-NEXT: new value: 1
# CHECK-NEXT: Process {{[0-9]+}} resuming
# CHECK-NEXT: Process {{[0-9]+}} stopped
# CHECK-NEXT: {{.*}} stop reason = watchpoint 1
c
# CHECK: Process {{[0-9]+}} exited with status = 0 (0x00000000)