Sha256: b89665e16b15d74ef912525647ad1b8f03148002c5b6daacb4ec021527fcfe8a

Contents?: true

Size: 1.5 KB

Versions: 16

Compression:

Stored size: 1.5 KB

Contents

module Byebug
  #
  # Reopens the +info+ command to define the +breakpoints+ subcommand
  #
  class InfoCommand < Command
    #
    # Information about current breakpoints
    #
    class BreakpointsCommand < Command
      self.allow_in_post_mortem = true

      def self.regexp
        /^\s* b(?:reakpoints)? (?:\s+ (.+))? \s*$/x
      end

      def self.description
        <<-EOD
          inf[o] b[reakpoints]

          #{short_description}
        EOD
      end

      def self.short_description
        'Status of user settable breakpoints'
      end

      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

      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
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
byebug-9.0.5 lib/byebug/commands/info/breakpoints.rb
byebug-9.0.4 lib/byebug/commands/info/breakpoints.rb
byebug-9.0.3 lib/byebug/commands/info/breakpoints.rb
byebug-9.0.2 lib/byebug/commands/info/breakpoints.rb
byebug-9.0.1 lib/byebug/commands/info/breakpoints.rb
byebug-9.0.0 lib/byebug/commands/info/breakpoints.rb
byebug-8.2.5 lib/byebug/commands/info/breakpoints.rb
byebug-8.2.4 lib/byebug/commands/info/breakpoints.rb
byebug-8.2.3 lib/byebug/commands/info/breakpoints.rb
byebug-8.2.2 lib/byebug/commands/info/breakpoints.rb
byebug-8.2.1 lib/byebug/commands/info/breakpoints.rb
byebug-8.2.0 lib/byebug/commands/info/breakpoints.rb
byebug-8.1.0 lib/byebug/commands/info/breakpoints.rb
byebug-8.0.1 lib/byebug/commands/info/breakpoints.rb
byebug-8.0.0 lib/byebug/commands/info/breakpoints.rb
byebug-7.0.0 lib/byebug/commands/info/breakpoints.rb