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 16 def self.description <<-DESCRIPTION save[ FILE] #{short_description} Byebug state is saved as a script file. This includes breakpoints, catchpoints, display expressions and some settings. If no filename is given, byebug will fabricate one. Use the "source" command in another debug session to restore the saved file. DESCRIPTION end
regexp()
click to toggle source
# File lib/byebug/commands/save.rb, line 12 def self.regexp /^\s* sa(?:ve)? (?:\s+(\S+))? \s*$/x end
short_description()
click to toggle source
# File lib/byebug/commands/save.rb, line 31 def self.short_description "Saves current byebug session to a file" end
Public Instance Methods
execute()
click to toggle source
# File lib/byebug/commands/save.rb, line 35 def execute file = File.open(@match[1] || Setting[:savefile], "w") save_breakpoints(file) save_catchpoints(file) save_displays(file) save_settings(file) print pr("save.messages.done", path: file.path) file.close end
Private Instance Methods
save_breakpoints(file)
click to toggle source
# File lib/byebug/commands/save.rb, line 49 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 55 def save_catchpoints(file) Byebug.catchpoints.each_key do |c| file.puts "catch #{c}" end end
save_displays(file)
click to toggle source
# File lib/byebug/commands/save.rb, line 61 def save_displays(file) Byebug.displays.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 65 def save_settings(file) %w[autoirb autolist basename].each do |setting| file.puts "set #{setting} #{Setting[setting.to_sym]}" end end