[lldb-dev] [Bug 33164] New: Support conditional breakpoints during expression evaluation
lldb-dev at lists.llvm.org
Thu May 25 02:04:30 PDT 2017
Bug ID: 33164
Summary: Support conditional breakpoints during expression
Component: All Bugs
Assignee: lldb-dev at lists.llvm.org
Reporter: labath at google.com
CC: llvm-bugs at lists.llvm.org
In D33283 Jim Ingham said:
The fact that a breakpoint hit while evaluating an expression doesn't check the
condition is a known limitation.
You've got to protect against artificial recursions in handling breakpoints.
For instance, you could have a breakpoint condition in a function where the
condition calls back into the same function, hitting the breakpoint again,
calling the condition again, etc... Sounds a bit far-fetched, but it actually
happened in the field, which is why I added this protection. The code that does
this is in StopInfoBreakpoint.cpp::PerformAction.
We could be smarter about condition evaluation, since nesting expression
evaluation does work. Maybe tracking how deeply nested the condition evaluation
is and having a cutoff at some (settable?) depth. Or have a "I promise I'm not
going to do anything stupid" setting - though that seems hacky... I don't think
there is a bug about this, but it would be great to file one.
Note, we also prohibit breakpoint command execution in expressions. We have to
do that because the current implementation of the command evaluator isn't
re-entrant. We really should fix that some day, but that's a decent chunk of
work. Anyway, so we have to be draconian about command evaluation, but with
some care we could relax the condition evaluation prohibition.
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the lldb-dev