class DEBUGGER__::CheckBreakpoint - debug: Ruby Standard Library Documentation

# class DEBUGGER__::CheckBreakpoint

### Public Class Methods

new(cond:, command: nil, path: nil) click to toggle source
Calls superclass method `DEBUGGER__::Breakpoint::new`

    # File debug-1.10.0/lib/debug/breakpoint.rb, line 343
    def initialize cond:, command: nil, path: nil
      @key = [:check, cond].freeze

      super(cond, command, path)
    end

### Public Instance Methods

setup() click to toggle source

    # File debug-1.10.0/lib/debug/breakpoint.rb, line 349
    def setup
      @tp = TracePoint.new(:line){|tp|
        next if SESSION.in_subsession? # TODO: Ractor support
        next if ThreadClient.current.management?
        next if skip_path?(tp.path)

        if need_suspend? safe_eval(tp.binding, @cond)
          suspend
        end
      }
    end

to_s() click to toggle source
Calls superclass method `DEBUGGER__::Breakpoint#to_s`

    # File debug-1.10.0/lib/debug/breakpoint.rb, line 374
    def to_s
      s = "#{generate_label("Check")}"
      s += super
      s
    end

### Private Instance Methods

need_suspend?(cond_result) click to toggle source

    # File debug-1.10.0/lib/debug/breakpoint.rb, line 361
            def need_suspend? cond_result
      map = ThreadClient.current.check_bp_fulfillment_map
      if cond_result
        if map[self]
          false
        else
          map[self] = true
        end
      else
        map[self] = false
      end
    end