Sha256: 14d54453933642f5172b9b37bb3a2c716950ef31940adf13196eab0db369f557
Contents?: true
Size: 1.58 KB
Versions: 3
Compression:
Stored size: 1.58 KB
Contents
require 'byebug/command' module Byebug # # Save current settings to use them in another debug session. # class SaveCommand < Command self.allow_in_control = true self.allow_in_post_mortem = true def self.regexp /^\s* sa(?:ve)? (?:\s+(\S+))? \s*$/x end 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 def self.short_description 'Saves current byebug session to a file' end 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 def save_breakpoints(file) Byebug.breakpoints.each do |b| file.puts "break #{b.source}:#{b.pos}#{" if #{b.expr}" if b.expr}" end end def save_catchpoints(file) Byebug.catchpoints.keys.each do |c| file.puts "catch #{c}" end end def save_displays(file) Byebug.displays.each { |d| file.puts "display #{d[1]}" if d[0] } end def save_settings(file) %w[autoirb autolist basename].each do |setting| file.puts "set #{setting} #{Setting[setting.to_sym]}" end end end end
Version data entries
3 entries across 3 versions & 3 rubygems