Sha256: 33dbee6eac5c6c90cf8122be819a52b69bddd78c6534c22d60258514e2824751

Contents?: true

Size: 1.82 KB

Versions: 4

Compression:

Stored size: 1.82 KB

Contents

module Debugger
  class NextCommand < Command # :nodoc:
    self.context = true
    
    def regexp
      /^\s*n(?:ext)?(?:\s+(\d+))?$/
    end

    def execute
      steps = @match[1] ? @match[1].to_i : 1
      @state.context.step_over steps, @state.frames.size - @state.frame_pos
      @state.proceed
    end

    class << self
      def help_command
        'next'
      end

      def help(cmd)
        %{
          n[ext][ nnn]\tgo over one line or till line nnn
        }
      end
    end
  end

  class StepCommand < Command # :nodoc:
    self.context = true
    
    def regexp
      /^\s*s(?:tep)?(?:\s+(\d+))?$/
    end

    def execute
      @state.context.stop_next = @match[1] ? @match[1].to_i : 1
      @state.proceed
    end

    class << self
      def help_command
        'step'
      end

      def help(cmd)
        %{
          s[tep][ nnn]\tstep (into methods) one line or till line nnn
        }
      end
    end
  end

  class FinishCommand < Command # :nodoc:
    self.context = true
    
    def regexp
      /^\s*fin(?:ish)?$/
    end

    def execute
      if @state.frame_pos == @state.frames.size
        print "\"finish\" not meaningful in the outermost frame.\n"
      else
        @state.context.stop_frame = @state.frames.size - @state.frame_pos
        @state.frame_pos = 0
        @state.proceed
      end
    end

    class << self
      def help_command
        'finish'
      end

      def help(cmd)
        %{
          fin[ish]\treturn to outer frame
        }
      end
    end
  end

  class ContinueCommand < Command # :nodoc:
    def regexp
      /^\s*c(?:ont)?$/
    end

    def execute
      @state.proceed
    end

    class << self
      def help_command
        'cont'
      end

      def help(cmd)
        %{
          c[ont]\trun until program ends or hit breakpoint
        }
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
ruby-debug-0.5.1-mswin32 lib/ruby-debug/commands/stepping.rb
ruby-debug-0.5-mswin32 lib/ruby-debug/commands/stepping.rb
ruby-debug-0.5 lib/ruby-debug/commands/stepping.rb
ruby-debug-0.5.1 lib/ruby-debug/commands/stepping.rb