class Byebug::InfoCommand::BreakpointsCommand
Information about current breakpoints
def self.description
def self.description <<-EOD inf[o] b[reakpoints] #{short_description} EOD end
def self.regexp
def self.regexp /^\s* b(?:reakpoints)? (?:\s+ (.+))? \s*$/x end
def self.short_description
def self.short_description 'Status of user settable breakpoints' end
def execute
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
def info_breakpoint(brkpt)
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