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