ruby-debug 0.9.2 → 0.9.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGES +6 -0
 - data/bin/rdebug +11 -1
 - data/cli/ruby-debug.rb +1 -1
 - data/cli/ruby-debug/command.rb +58 -7
 - data/cli/ruby-debug/commands/eval.rb +8 -1
 - data/cli/ruby-debug/commands/frame.rb +2 -2
 - data/cli/ruby-debug/commands/irb.rb +29 -5
 - data/cli/ruby-debug/commands/list.rb +15 -0
 - data/cli/ruby-debug/commands/settings.rb +8 -8
 - data/cli/ruby-debug/commands/stepping.rb +2 -2
 - metadata +3 -3
 
    
        data/CHANGES
    CHANGED
    
    | 
         @@ -1,3 +1,9 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            0.9.3
         
     | 
| 
      
 2 
     | 
    
         
            +
            - Fixed if..elsif..end stepping.
         
     | 
| 
      
 3 
     | 
    
         
            +
            - From irb session Ctrl-C or 'cont' command continues execution without showing the debugger prompt.
         
     | 
| 
      
 4 
     | 
    
         
            +
            - Added Debugger.settings method to programatically modify command settings.
         
     | 
| 
      
 5 
     | 
    
         
            +
            - Added Kernel#breakpoint as alias to Kernel#debugger is the former is not already defined.
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
       1 
7 
     | 
    
         
             
            0.9.2
         
     | 
| 
       2 
8 
     | 
    
         
             
            - Fixed file comparison in Windows platform.
         
     | 
| 
       3 
9 
     | 
    
         
             
            - Added setter methods to Breakpoint properties
         
     | 
    
        data/bin/rdebug
    CHANGED
    
    | 
         @@ -8,9 +8,11 @@ require 'ruby-debug' 
     | 
|
| 
       8 
8 
     | 
    
         
             
            options = OpenStruct.new(
         
     | 
| 
       9 
9 
     | 
    
         
             
              'server'      => false,
         
     | 
| 
       10 
10 
     | 
    
         
             
              'client'      => false,
         
     | 
| 
      
 11 
     | 
    
         
            +
              'debug_module'=> 'debug',
         
     | 
| 
       11 
12 
     | 
    
         
             
              'host'        => nil,
         
     | 
| 
       12 
13 
     | 
    
         
             
              'port'        => Debugger::PORT,
         
     | 
| 
       13 
14 
     | 
    
         
             
              'cport'       => Debugger::PORT + 1,
         
     | 
| 
      
 15 
     | 
    
         
            +
              'control'     => true,
         
     | 
| 
       14 
16 
     | 
    
         
             
              'wait'        => false,
         
     | 
| 
       15 
17 
     | 
    
         
             
              'nostop'      => false,
         
     | 
| 
       16 
18 
     | 
    
         
             
              'post_mortem' => false,
         
     | 
| 
         @@ -32,6 +34,7 @@ EOB 
     | 
|
| 
       32 
34 
     | 
    
         
             
              opts.on("-h", "--host HOST", "Host name used for remote debugging") {|options.host|}
         
     | 
| 
       33 
35 
     | 
    
         
             
              opts.on("-p", "--port PORT", Integer, "Port used for remote debugging") {|options.port|}
         
     | 
| 
       34 
36 
     | 
    
         
             
              opts.on("--cport PORT", Integer, "Port used for contol commands") {|options.cport|}
         
     | 
| 
      
 37 
     | 
    
         
            +
              opts.on("--no-control", "Do not automatically start control thread") {options.control = false}
         
     | 
| 
       35 
38 
     | 
    
         
             
              opts.on("-x", "--trace", "turn on line tracing") {options.tracing = true}
         
     | 
| 
       36 
39 
     | 
    
         
             
              opts.on("-n", "--nostop", "Do not stop when stript is loaded") {options.nostop = true}
         
     | 
| 
       37 
40 
     | 
    
         
             
              opts.on("-m", "--post-mortem", "Activate post-mortem mode") {options.post_mortem = true}
         
     | 
| 
         @@ -44,6 +47,13 @@ EOB 
     | 
|
| 
       44 
47 
     | 
    
         
             
                  exit
         
     | 
| 
       45 
48 
     | 
    
         
             
                end
         
     | 
| 
       46 
49 
     | 
    
         
             
              end
         
     | 
| 
      
 50 
     | 
    
         
            +
              opts.on("-r", "--require debug", String,
         
     | 
| 
      
 51 
     | 
    
         
            +
                      "Compatibility with Ruby-distributed debug module") do |options.debug_module|
         
     | 
| 
      
 52 
     | 
    
         
            +
                if options.debug_module != 'debug'
         
     | 
| 
      
 53 
     | 
    
         
            +
                  puts "Use '-r' option only with 'debug' (You supplied '#{options.debug_module}'). " + 
         
     | 
| 
      
 54 
     | 
    
         
            +
                    "This option is ignored."
         
     | 
| 
      
 55 
     | 
    
         
            +
                end
         
     | 
| 
      
 56 
     | 
    
         
            +
              end
         
     | 
| 
       47 
57 
     | 
    
         
             
              opts.on("--keep-frame-binding", "Keep frame bindings") {options.frame_bind = true}
         
     | 
| 
       48 
58 
     | 
    
         
             
              opts.on("--emacs", "Activates emacs mode") {ENV['EMACS'] = '1'}
         
     | 
| 
       49 
59 
     | 
    
         
             
              opts.separator ""
         
     | 
| 
         @@ -110,7 +120,7 @@ else 
     | 
|
| 
       110 
120 
     | 
    
         
             
                # activate debugger
         
     | 
| 
       111 
121 
     | 
    
         
             
                Debugger.start
         
     | 
| 
       112 
122 
     | 
    
         
             
                # start control thread
         
     | 
| 
       113 
     | 
    
         
            -
                Debugger.start_control(options.host, options.cport)
         
     | 
| 
      
 123 
     | 
    
         
            +
                Debugger.start_control(options.host, options.cport) if options.control
         
     | 
| 
       114 
124 
     | 
    
         | 
| 
       115 
125 
     | 
    
         
             
                # load initrc script
         
     | 
| 
       116 
126 
     | 
    
         
             
                load_initrc.call
         
     | 
    
        data/cli/ruby-debug.rb
    CHANGED
    
    | 
         @@ -64,7 +64,7 @@ module Debugger 
     | 
|
| 
       64 
64 
     | 
    
         
             
                end
         
     | 
| 
       65 
65 
     | 
    
         
             
                alias start_server start_remote
         
     | 
| 
       66 
66 
     | 
    
         | 
| 
       67 
     | 
    
         
            -
                def start_control(host = nil, ctrl_port = PORT + 1)
         
     | 
| 
      
 67 
     | 
    
         
            +
                def start_control(host = nil, ctrl_port = PORT + 1) # :nodoc:
         
     | 
| 
       68 
68 
     | 
    
         
             
                  raise "Debugger is not started" unless started?
         
     | 
| 
       69 
69 
     | 
    
         
             
                  return if @control_thread
         
     | 
| 
       70 
70 
     | 
    
         
             
                  @control_thread = DebugThread.new do
         
     | 
    
        data/cli/ruby-debug/command.rb
    CHANGED
    
    | 
         @@ -42,16 +42,50 @@ module Debugger 
     | 
|
| 
       42 
42 
     | 
    
         
             
                  def options
         
     | 
| 
       43 
43 
     | 
    
         
             
                    @options ||= {}
         
     | 
| 
       44 
44 
     | 
    
         
             
                  end
         
     | 
| 
      
 45 
     | 
    
         
            +
             
     | 
| 
      
 46 
     | 
    
         
            +
                  def settings_map
         
     | 
| 
      
 47 
     | 
    
         
            +
                    @@settings_map ||= {}
         
     | 
| 
      
 48 
     | 
    
         
            +
                  end
         
     | 
| 
      
 49 
     | 
    
         
            +
                  private :settings_map
         
     | 
| 
       45 
50 
     | 
    
         | 
| 
       46 
     | 
    
         
            -
                  def  
     | 
| 
       47 
     | 
    
         
            -
                     
     | 
| 
      
 51 
     | 
    
         
            +
                  def settings
         
     | 
| 
      
 52 
     | 
    
         
            +
                    unless @settings
         
     | 
| 
      
 53 
     | 
    
         
            +
                      @settings = Object.new
         
     | 
| 
      
 54 
     | 
    
         
            +
                      map = settings_map
         
     | 
| 
      
 55 
     | 
    
         
            +
                      class << @settings; self end.send(:define_method, :[]) do |name|
         
     | 
| 
      
 56 
     | 
    
         
            +
                        raise "No such setting #{name}" unless map.has_key?(name)
         
     | 
| 
      
 57 
     | 
    
         
            +
                        map[name][:getter].call
         
     | 
| 
      
 58 
     | 
    
         
            +
                      end
         
     | 
| 
      
 59 
     | 
    
         
            +
                      class << @settings; self end.send(:define_method, :[]=) do |name, value|
         
     | 
| 
      
 60 
     | 
    
         
            +
                        raise "No such setting #{name}" unless map.has_key?(name)
         
     | 
| 
      
 61 
     | 
    
         
            +
                        map[name][:setter].call(value)
         
     | 
| 
      
 62 
     | 
    
         
            +
                      end
         
     | 
| 
      
 63 
     | 
    
         
            +
                    end
         
     | 
| 
      
 64 
     | 
    
         
            +
                    @settings
         
     | 
| 
      
 65 
     | 
    
         
            +
                  end
         
     | 
| 
      
 66 
     | 
    
         
            +
             
     | 
| 
      
 67 
     | 
    
         
            +
                  def register_setting_var(name, default)
         
     | 
| 
      
 68 
     | 
    
         
            +
                    var_name = "@@#{name}"
         
     | 
| 
      
 69 
     | 
    
         
            +
                    class_variable_set(var_name, default)
         
     | 
| 
      
 70 
     | 
    
         
            +
                    register_setting_get(name) { class_variable_get(var_name) }
         
     | 
| 
      
 71 
     | 
    
         
            +
                    register_setting_set(name) { |value| class_variable_set(var_name, value) }
         
     | 
| 
      
 72 
     | 
    
         
            +
                  end
         
     | 
| 
      
 73 
     | 
    
         
            +
             
     | 
| 
      
 74 
     | 
    
         
            +
                  def register_setting_get(name, &block)
         
     | 
| 
      
 75 
     | 
    
         
            +
                    settings_map[name] ||= {}
         
     | 
| 
      
 76 
     | 
    
         
            +
                    settings_map[name][:getter] = block
         
     | 
| 
      
 77 
     | 
    
         
            +
                  end
         
     | 
| 
      
 78 
     | 
    
         
            +
             
     | 
| 
      
 79 
     | 
    
         
            +
                  def register_setting_set(name, &block)
         
     | 
| 
      
 80 
     | 
    
         
            +
                    settings_map[name] ||= {}
         
     | 
| 
      
 81 
     | 
    
         
            +
                    settings_map[name][:setter] = block
         
     | 
| 
       48 
82 
     | 
    
         
             
                  end
         
     | 
| 
       49 
83 
     | 
    
         
             
                end
         
     | 
| 
       50 
84 
     | 
    
         | 
| 
       51 
     | 
    
         
            -
                 
     | 
| 
       52 
     | 
    
         
            -
                 
     | 
| 
       53 
     | 
    
         
            -
                 
     | 
| 
       54 
     | 
    
         
            -
                 
     | 
| 
      
 85 
     | 
    
         
            +
                register_setting_var(:stack_trace_on_error, false)
         
     | 
| 
      
 86 
     | 
    
         
            +
                register_setting_var(:frame_full_path, true)
         
     | 
| 
      
 87 
     | 
    
         
            +
                register_setting_var(:frame_class_names, false)
         
     | 
| 
      
 88 
     | 
    
         
            +
                register_setting_var(:force_stepping, false)
         
     | 
| 
       55 
89 
     | 
    
         | 
| 
       56 
90 
     | 
    
         
             
                def initialize(state)
         
     | 
| 
       57 
91 
     | 
    
         
             
                  @state = state
         
     | 
| 
         @@ -75,7 +109,7 @@ module Debugger 
     | 
|
| 
       75 
109 
     | 
    
         
             
                  begin
         
     | 
| 
       76 
110 
     | 
    
         
             
                    val = eval(str, b)
         
     | 
| 
       77 
111 
     | 
    
         
             
                  rescue StandardError, ScriptError => e
         
     | 
| 
       78 
     | 
    
         
            -
                    if  
     | 
| 
      
 112 
     | 
    
         
            +
                    if Command.settings[:stack_trace_on_error]
         
     | 
| 
       79 
113 
     | 
    
         
             
                      at = eval("caller(1)", b)
         
     | 
| 
       80 
114 
     | 
    
         
             
                      print "%s:%s\n", at.shift, e.to_s.sub(/\(eval\):1:(in `.*?':)?/, '')
         
     | 
| 
       81 
115 
     | 
    
         
             
                      for i in at
         
     | 
| 
         @@ -110,4 +144,21 @@ module Debugger 
     | 
|
| 
       110 
144 
     | 
    
         
             
              end
         
     | 
| 
       111 
145 
     | 
    
         | 
| 
       112 
146 
     | 
    
         
             
              Command.load_commands
         
     | 
| 
      
 147 
     | 
    
         
            +
             
     | 
| 
      
 148 
     | 
    
         
            +
              # Returns setting object.
         
     | 
| 
      
 149 
     | 
    
         
            +
              # Use Debugger.settings[] and Debugger.settings[]= methods to query and set
         
     | 
| 
      
 150 
     | 
    
         
            +
              # debugger settings. These settings are available:
         
     | 
| 
      
 151 
     | 
    
         
            +
              # 
         
     | 
| 
      
 152 
     | 
    
         
            +
              # - :autolist - automatically calls 'list' command on breakpoint
         
     | 
| 
      
 153 
     | 
    
         
            +
              # - :autoeval - evaluates input in the current binding if it's not recognized as a debugger command
         
     | 
| 
      
 154 
     | 
    
         
            +
              # - :autoirb - automatically calls 'irb' command on breakpoint
         
     | 
| 
      
 155 
     | 
    
         
            +
              # - :stack_trace_on_error - shows full stack trace if eval command results with an exception
         
     | 
| 
      
 156 
     | 
    
         
            +
              # - :frame_full_path - displays full paths when showing frame stack
         
     | 
| 
      
 157 
     | 
    
         
            +
              # - :frame_class_names - displays method's class name when showing frame stack
         
     | 
| 
      
 158 
     | 
    
         
            +
              # - :reload_source_on_change - makes 'list' command to always display up-to-date source code
         
     | 
| 
      
 159 
     | 
    
         
            +
              # - :force_stepping - stepping command asways move to the new line
         
     | 
| 
      
 160 
     | 
    
         
            +
              # 
         
     | 
| 
      
 161 
     | 
    
         
            +
              def self.settings
         
     | 
| 
      
 162 
     | 
    
         
            +
                Command.settings
         
     | 
| 
      
 163 
     | 
    
         
            +
              end
         
     | 
| 
       113 
164 
     | 
    
         
             
            end
         
     | 
| 
         @@ -1,5 +1,5 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            module Debugger
         
     | 
| 
       2 
     | 
    
         
            -
              module EvalFunctions
         
     | 
| 
      
 2 
     | 
    
         
            +
              module EvalFunctions # :nodoc:
         
     | 
| 
       3 
3 
     | 
    
         
             
                def run_with_binding
         
     | 
| 
       4 
4 
     | 
    
         
             
                  binding = @state.context ? get_binding : TOPLEVEL_BINDING
         
     | 
| 
       5 
5 
     | 
    
         
             
                  $__dbg_interface = @state.interface
         
     | 
| 
         @@ -23,6 +23,13 @@ module Debugger 
     | 
|
| 
       23 
23 
     | 
    
         | 
| 
       24 
24 
     | 
    
         
             
                include EvalFunctions
         
     | 
| 
       25 
25 
     | 
    
         | 
| 
      
 26 
     | 
    
         
            +
                register_setting_get(:autoeval) do
         
     | 
| 
      
 27 
     | 
    
         
            +
                  EvalCommand.unknown
         
     | 
| 
      
 28 
     | 
    
         
            +
                end
         
     | 
| 
      
 29 
     | 
    
         
            +
                register_setting_set(:autoeval) do |value|
         
     | 
| 
      
 30 
     | 
    
         
            +
                  EvalCommand.unknown = value
         
     | 
| 
      
 31 
     | 
    
         
            +
                end
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
       26 
33 
     | 
    
         
             
                def match(input)
         
     | 
| 
       27 
34 
     | 
    
         
             
                  @input = input
         
     | 
| 
       28 
35 
     | 
    
         
             
                  super
         
     | 
| 
         @@ -47,12 +47,12 @@ module Debugger 
     | 
|
| 
       47 
47 
     | 
    
         
             
                  method = ""
         
     | 
| 
       48 
48 
     | 
    
         
             
                  if id
         
     | 
| 
       49 
49 
     | 
    
         
             
                    method << " in '"
         
     | 
| 
       50 
     | 
    
         
            -
                    method << "#{klass}." if Command. 
     | 
| 
      
 50 
     | 
    
         
            +
                    method << "#{klass}." if Command.settings[:frame_class_names] && klass
         
     | 
| 
       51 
51 
     | 
    
         
             
                    method << id.id2name
         
     | 
| 
       52 
52 
     | 
    
         
             
                    method << "'"
         
     | 
| 
       53 
53 
     | 
    
         
             
                  end
         
     | 
| 
       54 
54 
     | 
    
         | 
| 
       55 
     | 
    
         
            -
                  unless Command. 
     | 
| 
      
 55 
     | 
    
         
            +
                  unless Command.settings[:frame_full_path]
         
     | 
| 
       56 
56 
     | 
    
         
             
                    path_components = file.split(/[\\\/]/)
         
     | 
| 
       57 
57 
     | 
    
         
             
                    if path_components.size > 3
         
     | 
| 
       58 
58 
     | 
    
         
             
                      path_components[0...-3] = '...'
         
     | 
| 
         @@ -1,5 +1,15 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require 'irb'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
       2 
3 
     | 
    
         
             
            module IRB # :nodoc:
         
     | 
| 
      
 4 
     | 
    
         
            +
              module ExtendCommand # :nodoc:
         
     | 
| 
      
 5 
     | 
    
         
            +
                class Continue # :nodoc:
         
     | 
| 
      
 6 
     | 
    
         
            +
                  def self.execute(conf)
         
     | 
| 
      
 7 
     | 
    
         
            +
                    throw :IRB_EXIT, :cont
         
     | 
| 
      
 8 
     | 
    
         
            +
                  end
         
     | 
| 
      
 9 
     | 
    
         
            +
                end
         
     | 
| 
      
 10 
     | 
    
         
            +
              end
         
     | 
| 
      
 11 
     | 
    
         
            +
              ExtendCommandBundle.def_extend_command "cont", :Continue
         
     | 
| 
      
 12 
     | 
    
         
            +
              
         
     | 
| 
       3 
13 
     | 
    
         
             
              def self.start_session(binding)
         
     | 
| 
       4 
14 
     | 
    
         
             
                unless @__initialized
         
     | 
| 
       5 
15 
     | 
    
         
             
                  args = ARGV
         
     | 
| 
         @@ -16,10 +26,6 @@ module IRB # :nodoc: 
     | 
|
| 
       16 
26 
     | 
    
         
             
                @CONF[:IRB_RC].call(irb.context) if @CONF[:IRB_RC]
         
     | 
| 
       17 
27 
     | 
    
         
             
                @CONF[:MAIN_CONTEXT] = irb.context
         
     | 
| 
       18 
28 
     | 
    
         | 
| 
       19 
     | 
    
         
            -
            #     trap("SIGINT") do
         
     | 
| 
       20 
     | 
    
         
            -
            #       irb.signal_handle
         
     | 
| 
       21 
     | 
    
         
            -
            #     end
         
     | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
29 
     | 
    
         
             
                catch(:IRB_EXIT) do
         
     | 
| 
       24 
30 
     | 
    
         
             
                  irb.eval_input
         
     | 
| 
       25 
31 
     | 
    
         
             
                end
         
     | 
| 
         @@ -28,6 +34,14 @@ end 
     | 
|
| 
       28 
34 
     | 
    
         | 
| 
       29 
35 
     | 
    
         
             
            module Debugger
         
     | 
| 
       30 
36 
     | 
    
         
             
              class IRBCommand < Command # :nodoc:
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
                register_setting_get(:autoirb) do 
         
     | 
| 
      
 39 
     | 
    
         
            +
                  IRBCommand.always_run
         
     | 
| 
      
 40 
     | 
    
         
            +
                end
         
     | 
| 
      
 41 
     | 
    
         
            +
                register_setting_set(:autoirb) do |value|
         
     | 
| 
      
 42 
     | 
    
         
            +
                  IRBCommand.always_run = value
         
     | 
| 
      
 43 
     | 
    
         
            +
                end
         
     | 
| 
      
 44 
     | 
    
         
            +
             
     | 
| 
       31 
45 
     | 
    
         
             
                def regexp
         
     | 
| 
       32 
46 
     | 
    
         
             
                  /^irb$/
         
     | 
| 
       33 
47 
     | 
    
         
             
                end
         
     | 
| 
         @@ -37,7 +51,17 @@ module Debugger 
     | 
|
| 
       37 
51 
     | 
    
         
             
                    print "Command is available only in local mode.\n"
         
     | 
| 
       38 
52 
     | 
    
         
             
                    throw :debug_error
         
     | 
| 
       39 
53 
     | 
    
         
             
                  end
         
     | 
| 
       40 
     | 
    
         
            -
             
     | 
| 
      
 54 
     | 
    
         
            +
             
     | 
| 
      
 55 
     | 
    
         
            +
                  save_trap = trap("SIGINT") do
         
     | 
| 
      
 56 
     | 
    
         
            +
                    throw :IRB_EXIT, :cont if $debug_in_irb
         
     | 
| 
      
 57 
     | 
    
         
            +
                  end
         
     | 
| 
      
 58 
     | 
    
         
            +
             
     | 
| 
      
 59 
     | 
    
         
            +
                  $debug_in_irb = true
         
     | 
| 
      
 60 
     | 
    
         
            +
                  cont = IRB.start_session(get_binding)
         
     | 
| 
      
 61 
     | 
    
         
            +
                  @state.proceed if cont == :cont
         
     | 
| 
      
 62 
     | 
    
         
            +
                ensure
         
     | 
| 
      
 63 
     | 
    
         
            +
                  $debug_in_irb = false
         
     | 
| 
      
 64 
     | 
    
         
            +
                  trap("SIGINT", save_trap) if save_trap
         
     | 
| 
       41 
65 
     | 
    
         
             
                end
         
     | 
| 
       42 
66 
     | 
    
         | 
| 
       43 
67 
     | 
    
         
             
                class << self
         
     | 
| 
         @@ -1,5 +1,13 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            module Debugger
         
     | 
| 
       2 
2 
     | 
    
         
             
              class ListCommand < Command # :nodoc:
         
     | 
| 
      
 3 
     | 
    
         
            +
             
     | 
| 
      
 4 
     | 
    
         
            +
                register_setting_get(:autolist) do
         
     | 
| 
      
 5 
     | 
    
         
            +
                  ListCommand.always_run 
         
     | 
| 
      
 6 
     | 
    
         
            +
                end
         
     | 
| 
      
 7 
     | 
    
         
            +
                register_setting_set(:autolist) do |value|
         
     | 
| 
      
 8 
     | 
    
         
            +
                  ListCommand.always_run = value
         
     | 
| 
      
 9 
     | 
    
         
            +
                end
         
     | 
| 
      
 10 
     | 
    
         
            +
             
     | 
| 
       3 
11 
     | 
    
         
             
                def regexp
         
     | 
| 
       4 
12 
     | 
    
         
             
                  /^\s*l(?:ist)?(?:\s*([-=])|\s+(.+))?$/
         
     | 
| 
       5 
13 
     | 
    
         
             
                end
         
     | 
| 
         @@ -68,6 +76,13 @@ module Debugger 
     | 
|
| 
       68 
76 
     | 
    
         | 
| 
       69 
77 
     | 
    
         
             
              class ReloadCommand < Command # :nodoc:
         
     | 
| 
       70 
78 
     | 
    
         
             
                self.control = true
         
     | 
| 
      
 79 
     | 
    
         
            +
             
     | 
| 
      
 80 
     | 
    
         
            +
                register_setting_get(:reload_source_on_change) do 
         
     | 
| 
      
 81 
     | 
    
         
            +
                  Debugger.reload_source_on_change
         
     | 
| 
      
 82 
     | 
    
         
            +
                end
         
     | 
| 
      
 83 
     | 
    
         
            +
                register_setting_set(:reload_source_on_change) do |value|
         
     | 
| 
      
 84 
     | 
    
         
            +
                  Debugger.reload_source_on_change = value
         
     | 
| 
      
 85 
     | 
    
         
            +
                end
         
     | 
| 
       71 
86 
     | 
    
         | 
| 
       72 
87 
     | 
    
         
             
                def regexp
         
     | 
| 
       73 
88 
     | 
    
         
             
                  /^\s*r(?:eload)?$/
         
     | 
| 
         @@ -9,28 +9,28 @@ module Debugger 
     | 
|
| 
       9 
9 
     | 
    
         
             
                def execute
         
     | 
| 
       10 
10 
     | 
    
         
             
                  case @match[1]
         
     | 
| 
       11 
11 
     | 
    
         
             
                  when /^(no)?autolist$/
         
     | 
| 
       12 
     | 
    
         
            -
                     
     | 
| 
      
 12 
     | 
    
         
            +
                    Command.settings[:autolist] = $1.nil?
         
     | 
| 
       13 
13 
     | 
    
         
             
                    print "autolist is #{$1.nil? ? 'on' : 'off'}.\n"
         
     | 
| 
       14 
14 
     | 
    
         
             
                  when /^(no)?autoeval$/
         
     | 
| 
       15 
     | 
    
         
            -
                     
     | 
| 
      
 15 
     | 
    
         
            +
                    Command.settings[:autoeval] = $1.nil?
         
     | 
| 
       16 
16 
     | 
    
         
             
                    print "autoeval is #{$1.nil? ? 'on' : 'off'}.\n"
         
     | 
| 
       17 
17 
     | 
    
         
             
                  when /^(no)?trace$/
         
     | 
| 
       18 
     | 
    
         
            -
                     
     | 
| 
      
 18 
     | 
    
         
            +
                    Command.settings[:stack_trace_on_error] = $1.nil?
         
     | 
| 
       19 
19 
     | 
    
         
             
                    print "Displaying stack trace is #{$1.nil? ? 'on' : 'off'}.\n"
         
     | 
| 
       20 
20 
     | 
    
         
             
                  when /^(no)?framefullpath$/
         
     | 
| 
       21 
     | 
    
         
            -
                     
     | 
| 
      
 21 
     | 
    
         
            +
                    Command.settings[:frame_full_path] = $1.nil?
         
     | 
| 
       22 
22 
     | 
    
         
             
                    print "Displaying frame's full file names is #{$1.nil? ? 'on' : 'off'}.\n"
         
     | 
| 
       23 
23 
     | 
    
         
             
                  when /^(no)?frameclassname$/
         
     | 
| 
       24 
     | 
    
         
            -
                     
     | 
| 
      
 24 
     | 
    
         
            +
                    Command.settings[:frame_class_names] = $1.nil?
         
     | 
| 
       25 
25 
     | 
    
         
             
                    print "Displaying frame's original class name is #{$1.nil? ? 'on' : 'off'}.\n"
         
     | 
| 
       26 
26 
     | 
    
         
             
                  when /^(no)?autoreload$/
         
     | 
| 
       27 
     | 
    
         
            -
                     
     | 
| 
      
 27 
     | 
    
         
            +
                    Command.settings[:reload_source_on_change] = $1.nil?
         
     | 
| 
       28 
28 
     | 
    
         
             
                    print "autoreload is #{$1.nil? ? 'on' : 'off'}.\n"
         
     | 
| 
       29 
29 
     | 
    
         
             
                  when /^(no)?autoirb$/
         
     | 
| 
       30 
     | 
    
         
            -
                     
     | 
| 
      
 30 
     | 
    
         
            +
                    Command.settings[:autoirb] = $1.nil?
         
     | 
| 
       31 
31 
     | 
    
         
             
                    print "autoirb is #{$1.nil? ? 'on' : 'off'}.\n"
         
     | 
| 
       32 
32 
     | 
    
         
             
                  when /^(no)?forcestep$/
         
     | 
| 
       33 
     | 
    
         
            -
                     
     | 
| 
      
 33 
     | 
    
         
            +
                    self.class.settings[:force_stepping] = $1.nil?
         
     | 
| 
       34 
34 
     | 
    
         
             
                    print "force-stepping is #{$1.nil? ? 'on' : 'off'}.\n"
         
     | 
| 
       35 
35 
     | 
    
         
             
                  else
         
     | 
| 
       36 
36 
     | 
    
         
             
                    print "Unknown setting.\n"
         
     | 
| 
         @@ -7,7 +7,7 @@ module Debugger 
     | 
|
| 
       7 
7 
     | 
    
         
             
                end
         
     | 
| 
       8 
8 
     | 
    
         | 
| 
       9 
9 
     | 
    
         
             
                def execute
         
     | 
| 
       10 
     | 
    
         
            -
                  force = @match[1] == '+' || (@match[1].nil? &&  
     | 
| 
      
 10 
     | 
    
         
            +
                  force = @match[1] == '+' || (@match[1].nil? && Command.settings[:force_stepping])
         
     | 
| 
       11 
11 
     | 
    
         
             
                  steps = @match[2] ? @match[2].to_i : 1
         
     | 
| 
       12 
12 
     | 
    
         
             
                  @state.context.step_over steps, @state.frame_pos, force
         
     | 
| 
       13 
13 
     | 
    
         
             
                  @state.proceed
         
     | 
| 
         @@ -35,7 +35,7 @@ module Debugger 
     | 
|
| 
       35 
35 
     | 
    
         
             
                end
         
     | 
| 
       36 
36 
     | 
    
         | 
| 
       37 
37 
     | 
    
         
             
                def execute
         
     | 
| 
       38 
     | 
    
         
            -
                  force = @match[1] == '+' || (@match[1].nil? &&  
     | 
| 
      
 38 
     | 
    
         
            +
                  force = @match[1] == '+' || (@match[1].nil? && Command.settings[:force_stepping])
         
     | 
| 
       39 
39 
     | 
    
         
             
                  steps = @match[2] ? @match[2].to_i : 1
         
     | 
| 
       40 
40 
     | 
    
         
             
                  @state.context.step(steps, force)
         
     | 
| 
       41 
41 
     | 
    
         
             
                  @state.proceed
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -3,8 +3,8 @@ rubygems_version: 0.9.2 
     | 
|
| 
       3 
3 
     | 
    
         
             
            specification_version: 1
         
     | 
| 
       4 
4 
     | 
    
         
             
            name: ruby-debug
         
     | 
| 
       5 
5 
     | 
    
         
             
            version: !ruby/object:Gem::Version 
         
     | 
| 
       6 
     | 
    
         
            -
              version: 0.9. 
     | 
| 
       7 
     | 
    
         
            -
            date: 2007-04- 
     | 
| 
      
 6 
     | 
    
         
            +
              version: 0.9.3
         
     | 
| 
      
 7 
     | 
    
         
            +
            date: 2007-04-27 20:32:40 -04:00
         
     | 
| 
       8 
8 
     | 
    
         
             
            summary: Command line interface (CLI) for ruby-debug-base
         
     | 
| 
       9 
9 
     | 
    
         
             
            require_paths: 
         
     | 
| 
       10 
10 
     | 
    
         
             
            - cli
         
     | 
| 
         @@ -78,5 +78,5 @@ dependencies: 
     | 
|
| 
       78 
78 
     | 
    
         
             
                requirements: 
         
     | 
| 
       79 
79 
     | 
    
         
             
                - - "="
         
     | 
| 
       80 
80 
     | 
    
         
             
                  - !ruby/object:Gem::Version 
         
     | 
| 
       81 
     | 
    
         
            -
                    version: 0.9. 
     | 
| 
      
 81 
     | 
    
         
            +
                    version: 0.9.3
         
     | 
| 
       82 
82 
     | 
    
         
             
                version: 
         
     |