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 15 def self.description <<-EOD 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. EOD end
regexp()
click to toggle source
# File lib/byebug/commands/save.rb, line 11 def self.regexp /^\s* sa(?:ve)? (?:\s+(\S+))? \s*$/x end
short_description()
click to toggle source
# File lib/byebug/commands/save.rb, line 30 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 34 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 48 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 54 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 60 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 64 def save_settings(file) %w[autoirb autolist basename].each do |setting| file.puts "set #{setting} #{Setting[setting.to_sym]}" end end