class Byebug::RestartCommand


Restart debugged program from within byebug.

def self.description

def self.description
  <<-EOD
    restart [args]
    #{short_description}
    This is a re-exec - all byebug state is lost. If command arguments are
    passed those are used.
  EOD
end

def self.regexp

def self.regexp
  /^\s* restart (?:\s+(?<args>.+))? \s*$/x
end

def self.short_description

def self.short_description
  'Restarts the debugged program'
end

def execute

def execute
  argv = [$PROGRAM_NAME]
  argv.unshift(bin_file) if Byebug.mode == :standalone
  argv += (@match[:args] ? @match[:args].shellsplit : $ARGV.compact)
  puts pr('restart.success', cmd: argv.shelljoin)
  Kernel.exec(*argv)
end