[lldb-dev] [Bug 33164] New: Support conditional breakpoints during expression evaluation

via lldb-dev lldb-dev at lists.llvm.org
Thu May 25 02:04:30 PDT 2017


            Bug ID: 33164
           Summary: Support conditional breakpoints during expression
           Product: lldb
           Version: unspecified
          Hardware: PC
                OS: All
            Status: NEW
          Severity: enhancement
          Priority: P
         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...
URL: <http://lists.llvm.org/pipermail/lldb-dev/attachments/20170525/bb61797e/attachment.html>

More information about the lldb-dev mailing list