class Byebug::RestartCommand

Restart debugged program from within byebug.

Public Class Methods

description() click to toggle source
# File lib/byebug/commands/restart.rb, line 37
def description
  prettify <<-EOD
    restart|R [args]

    Restart the program. This is a re-exec - all byebug state
    is lost. If command arguments are passed those are used.
  EOD
end
names() click to toggle source
# File lib/byebug/commands/restart.rb, line 33
def names
  %w(restart)
end

Public Instance Methods

execute() click to toggle source
# File lib/byebug/commands/restart.rb, line 14
def execute
  if Byebug.mode == :standalone
    cmd = "#{Gem.bin_path('byebug', 'byebug')} #{$PROGRAM_NAME}"
  else
    cmd = $PROGRAM_NAME
  end

  if @match[:args]
    cmd += " #{@match[:args]}"
  else
    require 'shellwords'
    cmd += " #{$ARGV.compact.shelljoin}"
  end

  puts pr('restart.success', cmd: cmd)
  exec(cmd)
end
regexp() click to toggle source
# File lib/byebug/commands/restart.rb, line 10
def regexp
  /^\s* (?:restart|R) (?:\s+(?<args>.+))? \s*$/x
end