class Byebug::SaveCommand

Save current settings to use them in another debug session.

Public Class Methods

description() click to toggle source
# File lib/byebug/commands/save.rb, line 58
def description
  prettify <<-EOD
    save[ FILE]

    Saves current byebug state to FILE as a script file. This includes
    breakpoints, catchpoints, display expressions and some settings. If
    no filename is given, we will fabricate one.

    Use the "source" command in another debug session to restore them.
  EOD
end
names() click to toggle source
# File lib/byebug/commands/save.rb, line 54
def names
  %w(save)
end

Public Instance Methods

execute() click to toggle source
# File lib/byebug/commands/save.rb, line 41
def execute
  file = File.open(@match[1] || RESTART_FILE, 'w')

  save_breakpoints(file)
  save_catchpoints(file)
  save_displays(file)
  save_settings(file)

  print pr('save.messages.done', path: file.path)
  file.close
end
regexp() click to toggle source
# File lib/byebug/commands/save.rb, line 37
def regexp
  /^\s* sa(?:ve)? (?:\s+(\S+))? \s*$/x
end
save_breakpoints(file) click to toggle source
# File lib/byebug/commands/save.rb, line 15
def save_breakpoints(file)
  Byebug.breakpoints.each do |b|
    file.puts "break #{b.source}:#{b.pos}#{" if #{b.expr}" if b.expr}"
  end
end
save_catchpoints(file) click to toggle source
# File lib/byebug/commands/save.rb, line 21
def save_catchpoints(file)
  Byebug.catchpoints.keys.each do |c|
    file.puts "catch #{c}"
  end
end
save_displays(file) click to toggle source
# File lib/byebug/commands/save.rb, line 27
def save_displays(file)
  @state.display.each { |d| file.puts "display #{d[1]}" if d[0] }
end
save_settings(file) click to toggle source
# File lib/byebug/commands/save.rb, line 31
def save_settings(file)
  %w(autoeval autoirb autolist basename).each do |setting|
    file.puts "set #{setting} #{Setting[setting.to_sym]}"
  end
end