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