[all-commits] [llvm/llvm-project] 658f6e: Make ignore counts work as "after stop" modifiers ...

jimingham via All-commits all-commits at lists.llvm.org
Tue Jun 1 18:22:45 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 658f6ed1523b0e61ddee494ce1691f29a701c317
      https://github.com/llvm/llvm-project/commit/658f6ed1523b0e61ddee494ce1691f29a701c317
  Author: Jim Ingham <jingham at apple.com>
  Date:   2021-06-01 (Tue, 01 Jun 2021)

  Changed paths:
    M lldb/include/lldb/Breakpoint/Breakpoint.h
    M lldb/include/lldb/Breakpoint/BreakpointLocation.h
    M lldb/source/Breakpoint/Breakpoint.cpp
    M lldb/source/Breakpoint/BreakpointLocation.cpp
    M lldb/source/Target/StopInfo.cpp
    M lldb/test/API/functionalities/breakpoint/breakpoint_ignore_count/TestBreakpointIgnoreCount.py
    M lldb/test/API/functionalities/breakpoint/breakpoint_ignore_count/main.c

  Log Message:
  -----------
  Make ignore counts work as "after stop" modifiers so they play nicely with conditions

Previously ignore counts were checked when we stopped to do the sync callback in Breakpoint::ShouldStop. That meant we would do all the ignore count work even when
there is also a condition says the breakpoint should not stop.

That's wrong, lldb treats breakpoint hits that fail the thread or condition checks as "not having hit the breakpoint". So the ignore count check should happen after
the condition and thread checks in StopInfoBreakpoint::PerformAction.

The one side-effect of doing this is that if you have a breakpoint with a synchronous callback, it will run the synchronous callback before checking the ignore count.
That is probably a good thing, since this was already true of the condition and thread checks, so this removes an odd asymmetry. And breakpoints with sync callbacks
are all internal lldb breakpoints and there's not a really good reason why you would want one of these to use an ignore count (but not a condition or thread check...)

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




More information about the All-commits mailing list