class Byebug::InfoCommand::BreakpointsCommand - byebug-9.0.6 Documentation

# class Byebug::InfoCommand::BreakpointsCommand

Information about current breakpoints

### Public Class Methods

description() click to toggle source

    # File lib/byebug/commands/info/breakpoints.rb, line 16
    def self.description
      <<-EOD
        inf[o] b[reakpoints]

        #{short_description}
      EOD
    end

regexp() click to toggle source

    # File lib/byebug/commands/info/breakpoints.rb, line 12
    def self.regexp
      /^\s* b(?:reakpoints)? (?:\s+ (.+))? \s*$/x
    end

short_description() click to toggle source

    # File lib/byebug/commands/info/breakpoints.rb, line 24
    def self.short_description
      'Status of user settable breakpoints'
    end

### Public Instance Methods

execute() click to toggle source

    # File lib/byebug/commands/info/breakpoints.rb, line 28
    def execute
      return puts('No breakpoints.') if Byebug.breakpoints.empty?

      breakpoints = Byebug.breakpoints.sort_by(&:id)

      if @match[1]
        indices = @match[1].split(/ +/).map(&:to_i)
        breakpoints = breakpoints.select { |b| indices.member?(b.id) }
        if breakpoints.empty?
          return errmsg('No breakpoints found among list given')
        end
      end

      puts 'Num Enb What'
      breakpoints.each { |b| info_breakpoint(b) }
    end

### Private Instance Methods

info_breakpoint(brkpt) click to toggle source

    # File lib/byebug/commands/info/breakpoints.rb, line 47
    def info_breakpoint(brkpt)
      expr = brkpt.expr.nil? ? '' : " if #{brkpt.expr}"
      y_n = brkpt.enabled? ? 'y' : 'n'
      interp = format('%-3d %-3s at %s:%s%s',
                      brkpt.id, y_n, brkpt.source, brkpt.pos, expr)
      puts interp
      hits = brkpt.hit_count
      return unless hits > 0

      s = hits > 1 ? 's' : ''
      puts "  breakpoint already hit #{hits} time#{s}"
    end