[all-commits] [llvm/llvm-project] 0dd62a: [lldb] Disable variable watchpoints when going out...
Med Ismail Bennani via All-commits
all-commits at lists.llvm.org
Wed Jun 7 16:53:07 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 0dd62ace2ee2fafcb9a08953db1b9e4e20428e28
https://github.com/llvm/llvm-project/commit/0dd62ace2ee2fafcb9a08953db1b9e4e20428e28
Author: Med Ismail Bennani <ismail at bennani.ma>
Date: 2023-06-07 (Wed, 07 Jun 2023)
Changed paths:
M lldb/include/lldb/Breakpoint/Watchpoint.h
M lldb/source/Breakpoint/Watchpoint.cpp
M lldb/source/Commands/CommandObjectWatchpoint.cpp
M lldb/test/Shell/ScriptInterpreter/Lua/watchpoint_callback.test
A lldb/test/Shell/Watchpoint/Inputs/val.c
A lldb/test/Shell/Watchpoint/Inputs/watchpoint.in
A lldb/test/Shell/Watchpoint/LocalVariableWatchpointDisabler.test
Log Message:
-----------
[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 e1086384e584.
rdar://109574319
Differential Revision: https://reviews.llvm.org/D151366
Signed-off-by: Med Ismail Bennani <ismail at bennani.ma>
More information about the All-commits
mailing list