# class Byebug::ControlCommandProcessor

Processes commands in 'control' mode, when there's no program running

### Attributes

state[R]

### Public Class Methods

new(interface = LocalInterface.new) click to toggle source
Calls superclass method Byebug::Processor.new

    # File lib/byebug/processors/control_command_processor.rb, line 10
    def initialize(interface = LocalInterface.new)
      super(interface)
    end

### Public Instance Methods

commands() click to toggle source

    # File lib/byebug/processors/control_command_processor.rb, line 14
    def commands
      Command.commands.select(&:allow_in_control).map { |cmd| cmd.new(state) }
    end

process_commands() click to toggle source

    # File lib/byebug/processors/control_command_processor.rb, line 18
    def process_commands
      @state = ControlState.new(interface)

      while (input = @interface.read_command(prompt(nil)))
        cmd = commands.find { |c| c.match(input) }
        unless cmd
          errmsg('Unknown command')
          next
        end

        cmd.execute
      end

      @interface.close
    rescue IOError, SystemCallError
      @interface.close
    rescue
      without_exceptions do
        puts "INTERNAL ERROR!!! #{$ERROR_INFO}"
        puts $ERROR_INFO.backtrace.map { |l| "\t#{l}" }.join("\n")
      end
    end

prompt(_context) click to toggle source

Prompt shown before reading a command.

    # File lib/byebug/processors/control_command_processor.rb, line 44
    def prompt(_context)
      '(byebug:ctrl) '
    end