byebug 3.0.0 → 3.1.0
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +15 -0
- data/GUIDE.md +2 -2
- data/LICENSE +3 -3
- data/README.md +5 -4
- data/byebug.gemspec +1 -1
- data/ext/byebug/byebug.c +20 -19
- data/lib/byebug.rb +2 -53
- data/lib/byebug/command.rb +9 -109
- data/lib/byebug/commands/breakpoints.rb +1 -1
- data/lib/byebug/commands/control.rb +20 -21
- data/lib/byebug/commands/display.rb +2 -3
- data/lib/byebug/commands/eval.rb +6 -16
- data/lib/byebug/commands/finish.rb +1 -1
- data/lib/byebug/commands/frame.rb +9 -9
- data/lib/byebug/commands/help.rb +2 -3
- data/lib/byebug/commands/history.rb +28 -0
- data/lib/byebug/commands/info.rb +3 -3
- data/lib/byebug/commands/list.rb +2 -13
- data/lib/byebug/commands/method.rb +5 -45
- data/lib/byebug/commands/reload.rb +1 -12
- data/lib/byebug/commands/repl.rb +6 -15
- data/lib/byebug/commands/save.rb +2 -7
- data/lib/byebug/commands/set.rb +45 -116
- data/lib/byebug/commands/show.rb +22 -126
- data/lib/byebug/commands/stepping.rb +1 -1
- data/lib/byebug/commands/trace.rb +14 -25
- data/lib/byebug/commands/variables.rb +3 -41
- data/lib/byebug/helper.rb +11 -42
- data/lib/byebug/history.rb +5 -13
- data/lib/byebug/processors/command_processor.rb +6 -6
- data/lib/byebug/setting.rb +82 -0
- data/lib/byebug/settings/autoeval.rb +20 -0
- data/lib/byebug/settings/autoirb.rb +19 -0
- data/lib/byebug/settings/autolist.rb +19 -0
- data/lib/byebug/settings/autoreload.rb +11 -0
- data/lib/byebug/settings/autosave.rb +11 -0
- data/lib/byebug/settings/basename.rb +7 -0
- data/lib/byebug/settings/callstyle.rb +15 -0
- data/lib/byebug/settings/forcestep.rb +11 -0
- data/lib/byebug/settings/fullpath.rb +11 -0
- data/lib/byebug/settings/histfile.rb +16 -0
- data/lib/byebug/settings/histsize.rb +18 -0
- data/lib/byebug/settings/linetrace.rb +15 -0
- data/lib/byebug/settings/listsize.rb +15 -0
- data/lib/byebug/settings/post_mortem.rb +15 -0
- data/lib/byebug/settings/stack_on_error.rb +7 -0
- data/lib/byebug/settings/testing.rb +7 -0
- data/lib/byebug/settings/tracing_plus.rb +7 -0
- data/lib/byebug/settings/verbose.rb +7 -0
- data/lib/byebug/settings/width.rb +29 -0
- data/lib/byebug/version.rb +1 -1
- data/test/breakpoints_test.rb +345 -324
- data/test/conditions_test.rb +61 -48
- data/test/continue_test.rb +38 -27
- data/test/debugger_alias_test.rb +5 -3
- data/test/display_test.rb +103 -92
- data/test/edit_test.rb +42 -34
- data/test/eval_test.rb +91 -75
- data/test/finish_test.rb +51 -40
- data/test/frame_test.rb +197 -184
- data/test/help_test.rb +47 -38
- data/test/history_test.rb +54 -0
- data/test/info_test.rb +306 -293
- data/test/interrupt_test.rb +44 -38
- data/test/kill_test.rb +40 -31
- data/test/list_test.rb +166 -133
- data/test/method_test.rb +67 -60
- data/test/post_mortem_test.rb +56 -48
- data/test/quit_test.rb +44 -35
- data/test/reload_test.rb +36 -24
- data/test/repl_test.rb +57 -47
- data/test/restart_test.rb +56 -69
- data/test/save_test.rb +62 -53
- data/test/set_test.rb +140 -118
- data/test/show_test.rb +68 -201
- data/test/source_test.rb +39 -29
- data/test/stepping_test.rb +163 -136
- data/test/support/test_dsl.rb +9 -11
- data/test/test_helper.rb +2 -7
- data/test/thread_test.rb +121 -107
- data/test/trace_test.rb +86 -83
- data/test/variables_test.rb +104 -98
- metadata +27 -86
- data/test/examples/breakpoint.rb +0 -6
- data/test/examples/breakpoint_deep.rb +0 -4
- data/test/examples/conditions.rb +0 -4
- data/test/examples/continue.rb +0 -5
- data/test/examples/display.rb +0 -5
- data/test/examples/edit.rb +0 -4
- data/test/examples/eval.rb +0 -4
- data/test/examples/finish.rb +0 -3
- data/test/examples/frame.rb +0 -4
- data/test/examples/frame_deep.rb +0 -1
- data/test/examples/gcd.rb +0 -15
- data/test/examples/hanoi.rb +0 -34
- data/test/examples/help.rb +0 -1
- data/test/examples/info.rb +0 -6
- data/test/examples/info2.rb +0 -3
- data/test/examples/interrupt.rb +0 -8
- data/test/examples/kill.rb +0 -2
- data/test/examples/list.rb +0 -23
- data/test/examples/method.rb +0 -4
- data/test/examples/post_mortem.rb +0 -4
- data/test/examples/primes.rb +0 -25
- data/test/examples/quit.rb +0 -2
- data/test/examples/reload.rb +0 -6
- data/test/examples/repl.rb +0 -6
- data/test/examples/restart.rb +0 -6
- data/test/examples/save.rb +0 -3
- data/test/examples/set.rb +0 -3
- data/test/examples/settings.rb +0 -1
- data/test/examples/show.rb +0 -1
- data/test/examples/source.rb +0 -3
- data/test/examples/stepping.rb +0 -8
- data/test/examples/stepping_raise_from_c_method.rb +0 -3
- data/test/examples/stepping_raise_from_ruby_method.rb +0 -3
- data/test/examples/test-triangle.rb +0 -14
- data/test/examples/thread.rb +0 -5
- data/test/examples/tmate.rb +0 -10
- data/test/examples/trace.rb +0 -8
- data/test/examples/tri3.rb +0 -6
- data/test/examples/triangle.rb +0 -13
- data/test/examples/variables.rb +0 -4
- data/test/timeout_test.rb +0 -9
@@ -1,5 +1,4 @@
|
|
1
1
|
module Byebug
|
2
|
-
|
3
2
|
module DisplayFunctions
|
4
3
|
def display_expression(exp)
|
5
4
|
print "#{exp} = #{bb_warning_eval(exp).inspect}\n"
|
@@ -81,13 +80,13 @@ module Byebug
|
|
81
80
|
|
82
81
|
def execute
|
83
82
|
unless pos = @match[1]
|
84
|
-
if confirm(
|
83
|
+
if confirm('Clear all expressions? (y/n) ')
|
85
84
|
for d in @state.display
|
86
85
|
d[0] = false
|
87
86
|
end
|
88
87
|
end
|
89
88
|
else
|
90
|
-
pos = get_int(pos,
|
89
|
+
pos = get_int(pos, 'Undisplay')
|
91
90
|
return unless pos
|
92
91
|
if @state.display[pos-1]
|
93
92
|
@state.display[pos-1][0] = nil
|
data/lib/byebug/commands/eval.rb
CHANGED
@@ -11,16 +11,6 @@ module Byebug
|
|
11
11
|
class EvalCommand < Command
|
12
12
|
self.allow_in_control = true
|
13
13
|
|
14
|
-
register_setting_get(:autoeval) do
|
15
|
-
EvalCommand.unknown
|
16
|
-
end
|
17
|
-
register_setting_set(:autoeval) do |value|
|
18
|
-
EvalCommand.unknown = value
|
19
|
-
end
|
20
|
-
|
21
|
-
# Set default value
|
22
|
-
Command.settings[:autoeval] = true
|
23
|
-
|
24
14
|
def match(input)
|
25
15
|
@input = input
|
26
16
|
super
|
@@ -33,7 +23,7 @@ module Byebug
|
|
33
23
|
def execute
|
34
24
|
expr = @match ? @match.post_match : @input
|
35
25
|
run_with_binding do |b|
|
36
|
-
if
|
26
|
+
if Setting[:stack_on_error]
|
37
27
|
print "#{bb_eval(expr, b).inspect}\n"
|
38
28
|
else
|
39
29
|
print "#{bb_warning_eval(expr, b).inspect}\n"
|
@@ -68,7 +58,7 @@ module Byebug
|
|
68
58
|
def execute
|
69
59
|
out = StringIO.new
|
70
60
|
run_with_binding do |b|
|
71
|
-
if
|
61
|
+
if Setting[:stack_on_error]
|
72
62
|
PP.pp(bb_eval(@match.post_match, b), out)
|
73
63
|
else
|
74
64
|
PP.pp(bb_warning_eval(@match.post_match, b), out)
|
@@ -101,14 +91,14 @@ module Byebug
|
|
101
91
|
def execute
|
102
92
|
out = StringIO.new
|
103
93
|
run_with_binding do |b|
|
104
|
-
if
|
94
|
+
if Setting[:stack_on_error]
|
105
95
|
vals = bb_eval(@match.post_match, b)
|
106
96
|
else
|
107
97
|
vals = bb_warning_eval(@match.post_match, b)
|
108
98
|
end
|
109
99
|
if vals.is_a?(Array)
|
110
100
|
vals = vals.map{|item| item.to_s}
|
111
|
-
print "#{columnize(vals,
|
101
|
+
print "#{columnize(vals, Setting[:width])}\n"
|
112
102
|
else
|
113
103
|
PP.pp(vals, out)
|
114
104
|
print out.string
|
@@ -142,14 +132,14 @@ module Byebug
|
|
142
132
|
def execute
|
143
133
|
out = StringIO.new
|
144
134
|
run_with_binding do |b|
|
145
|
-
if
|
135
|
+
if Setting[:stack_on_error]
|
146
136
|
vals = bb_eval(@match.post_match, b)
|
147
137
|
else
|
148
138
|
vals = bb_warning_eval(@match.post_match, b)
|
149
139
|
end
|
150
140
|
if vals.is_a?(Array)
|
151
141
|
vals = vals.map{|item| item.to_s}
|
152
|
-
print "#{columnize(vals.sort!,
|
142
|
+
print "#{columnize(vals.sort!, Setting[:width])}\n"
|
153
143
|
else
|
154
144
|
PP.pp(vals, out)
|
155
145
|
print out.string
|
@@ -10,7 +10,7 @@ module Byebug
|
|
10
10
|
|
11
11
|
def execute
|
12
12
|
max_frames = Context.stack_size - @state.frame_pos
|
13
|
-
n_frames = get_int(@match[1],
|
13
|
+
n_frames = get_int(@match[1], 'finish', 0, max_frames - 1, 1)
|
14
14
|
return nil unless n_frames
|
15
15
|
|
16
16
|
force = n_frames == 0 ? true : false
|
@@ -86,12 +86,12 @@ module Byebug
|
|
86
86
|
|
87
87
|
def get_frame_call(prefix, pos)
|
88
88
|
frame_block, frame_method = get_frame_block_and_method(pos)
|
89
|
-
frame_class = get_frame_class(
|
90
|
-
frame_args = get_frame_args(
|
89
|
+
frame_class = get_frame_class(Setting[:callstyle], pos)
|
90
|
+
frame_args = get_frame_args(Setting[:callstyle], pos)
|
91
91
|
|
92
92
|
call_str = frame_block + frame_class + frame_method + frame_args
|
93
93
|
|
94
|
-
max_call_str_size =
|
94
|
+
max_call_str_size = Setting[:width] - prefix.size
|
95
95
|
if call_str.size > max_call_str_size
|
96
96
|
call_str = call_str[0..max_call_str_size - 5] + "...)"
|
97
97
|
end
|
@@ -122,7 +122,7 @@ module Byebug
|
|
122
122
|
file = @state.context.frame_file pos
|
123
123
|
line = @state.context.frame_line pos
|
124
124
|
|
125
|
-
unless
|
125
|
+
unless Setting[:fullpath]
|
126
126
|
path_components = file.split(/[\\\/]/)
|
127
127
|
if path_components.size > 3
|
128
128
|
path_components[0...-3] = '...'
|
@@ -140,7 +140,7 @@ module Byebug
|
|
140
140
|
frame_str += sprintf "#%-2d ", pos
|
141
141
|
frame_str += get_frame_call frame_str, pos
|
142
142
|
file_line = "at #{CommandProcessor.canonic_file(file)}:#{line}"
|
143
|
-
if frame_str.size + file_line.size + 1 >
|
143
|
+
if frame_str.size + file_line.size + 1 > Setting[:width]
|
144
144
|
frame_str += "\n #{file_line}\n"
|
145
145
|
else
|
146
146
|
frame_str += " #{file_line}\n"
|
@@ -162,7 +162,7 @@ module Byebug
|
|
162
162
|
|
163
163
|
class << self
|
164
164
|
def names
|
165
|
-
%w(where backtrace)
|
165
|
+
%w(where backtrace bt)
|
166
166
|
end
|
167
167
|
|
168
168
|
def description
|
@@ -184,7 +184,7 @@ module Byebug
|
|
184
184
|
end
|
185
185
|
|
186
186
|
def execute
|
187
|
-
pos = get_int(@match[1],
|
187
|
+
pos = get_int(@match[1], 'Up')
|
188
188
|
return unless pos
|
189
189
|
adjust_frame(pos, false)
|
190
190
|
end
|
@@ -206,7 +206,7 @@ module Byebug
|
|
206
206
|
end
|
207
207
|
|
208
208
|
def execute
|
209
|
-
pos = get_int(@match[1],
|
209
|
+
pos = get_int(@match[1], 'Down')
|
210
210
|
return unless pos
|
211
211
|
adjust_frame(-pos, false)
|
212
212
|
end
|
@@ -229,7 +229,7 @@ module Byebug
|
|
229
229
|
|
230
230
|
def execute
|
231
231
|
return print_frame @state.frame_pos unless @match[1]
|
232
|
-
return unless pos = get_int(@match[1],
|
232
|
+
return unless pos = get_int(@match[1], 'Frame')
|
233
233
|
adjust_frame(pos, true)
|
234
234
|
end
|
235
235
|
|
data/lib/byebug/commands/help.rb
CHANGED
@@ -26,13 +26,12 @@ module Byebug
|
|
26
26
|
end
|
27
27
|
end
|
28
28
|
|
29
|
-
print "byebug help v#{Byebug::VERSION}\n" unless
|
30
|
-
Command.settings[:testing]
|
29
|
+
print "byebug help v#{Byebug::VERSION}\n" unless Setting[:testing]
|
31
30
|
|
32
31
|
print "Type \"help <command-name>\" for help on a specific command\n\n"
|
33
32
|
print "Available commands:\n"
|
34
33
|
cmds = @state.commands.map{ |cmd| cmd.names }.flatten.uniq.sort
|
35
|
-
print columnize(cmds,
|
34
|
+
print columnize(cmds, Setting[:width])
|
36
35
|
end
|
37
36
|
|
38
37
|
class << self
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Byebug
|
2
|
+
class HistoryCommand < Command
|
3
|
+
def regexp
|
4
|
+
/^\s* hist(?:ory)? (?:\s+(?<num_cmds>.+))? \s*$/x
|
5
|
+
end
|
6
|
+
|
7
|
+
def execute
|
8
|
+
if Byebug::Setting[:autosave]
|
9
|
+
if arg = @match[:num_cmds]
|
10
|
+
size = get_int(@match[:num_cmds], 'history', 1, Byebug::Setting[:histsize])
|
11
|
+
end
|
12
|
+
print Byebug::History.to_s(size || Byebug::Setting[:histsize])
|
13
|
+
else
|
14
|
+
errmsg "Not currently saving history. Enable it with \"set autosave\"\n"
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
class << self
|
19
|
+
def names
|
20
|
+
%w(history)
|
21
|
+
end
|
22
|
+
|
23
|
+
def description
|
24
|
+
%{hist[ory] [num_cmds]\t\tShow byebug's command history}
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
data/lib/byebug/commands/info.rb
CHANGED
@@ -89,7 +89,7 @@ module Byebug
|
|
89
89
|
|
90
90
|
args.map do |_, name|
|
91
91
|
s = "#{name} = #{locals[name].inspect}"
|
92
|
-
|
92
|
+
s[Setting[:width]-3..-1] = "..." if s.size > Setting[:width]
|
93
93
|
print "#{s}\n"
|
94
94
|
end
|
95
95
|
end
|
@@ -150,7 +150,7 @@ module Byebug
|
|
150
150
|
breakpoints = LineCache.trace_line_numbers(file)
|
151
151
|
if breakpoints
|
152
152
|
print "\tbreakpoint line numbers:\n"
|
153
|
-
print columnize(breakpoints.to_a.sort,
|
153
|
+
print columnize(breakpoints.to_a.sort, Setting[:width])
|
154
154
|
end
|
155
155
|
end
|
156
156
|
private :info_file_breakpoints
|
@@ -219,7 +219,7 @@ module Byebug
|
|
219
219
|
s = "#{name} = *Error in evaluation*"
|
220
220
|
end
|
221
221
|
end
|
222
|
-
|
222
|
+
s[Setting[:width]-3..-1] = "..." if s.size > Setting[:width]
|
223
223
|
print "#{s}\n"
|
224
224
|
end
|
225
225
|
end
|
data/lib/byebug/commands/list.rb
CHANGED
@@ -2,30 +2,19 @@ module Byebug
|
|
2
2
|
|
3
3
|
# Implements byebug "list" command.
|
4
4
|
class ListCommand < Command
|
5
|
-
|
6
|
-
register_setting_get(:autolist) do
|
7
|
-
ListCommand.always_run
|
8
|
-
end
|
9
|
-
register_setting_set(:autolist) do |value|
|
10
|
-
ListCommand.always_run = value
|
11
|
-
end
|
12
|
-
|
13
|
-
# Set default value
|
14
|
-
Command.settings[:autolist] = 1
|
15
|
-
|
16
5
|
def regexp
|
17
6
|
/^\s* l(?:ist)? (?:\s*([-=])|\s+(\S+))? \s*$/x
|
18
7
|
end
|
19
8
|
|
20
9
|
def execute
|
21
|
-
Byebug.source_reload if
|
10
|
+
Byebug.source_reload if Setting[:autoreload]
|
22
11
|
lines = getlines(@state.file, @state.line)
|
23
12
|
if !lines
|
24
13
|
errmsg "No sourcefile available for #{@state.file}\n"
|
25
14
|
return @state.previous_line
|
26
15
|
end
|
27
16
|
|
28
|
-
b, e = set_line_range(
|
17
|
+
b, e = set_line_range(Setting[:listsize], lines.size)
|
29
18
|
return @state.previous_line if b < 0
|
30
19
|
|
31
20
|
print "\n[#{b}, #{e}] in #{@state.file}\n"
|
@@ -1,42 +1,4 @@
|
|
1
1
|
module Byebug
|
2
|
-
|
3
|
-
begin
|
4
|
-
require 'methodsig'
|
5
|
-
have_methodsig = true
|
6
|
-
rescue LoadError
|
7
|
-
have_methodsig = false
|
8
|
-
end
|
9
|
-
|
10
|
-
# Implements byebug's 'method sig' command.
|
11
|
-
class MethodSigCommand < Command
|
12
|
-
def regexp
|
13
|
-
/^\s* m(?:ethod)? \s+ sig(?:nature)? \s+ (\S+) \s*$/x
|
14
|
-
end
|
15
|
-
|
16
|
-
def execute
|
17
|
-
obj = bb_eval('method(:%s)' % @match[1])
|
18
|
-
if obj.is_a?(Method)
|
19
|
-
begin
|
20
|
-
print "%s\n", obj.signature.to_s
|
21
|
-
rescue
|
22
|
-
errmsg("Can't get signature for '#{@match[1]}'\n")
|
23
|
-
end
|
24
|
-
else
|
25
|
-
errmsg("Can't make method out of '#{@match[1]}'\n")
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
class << self
|
30
|
-
def names
|
31
|
-
%w(method)
|
32
|
-
end
|
33
|
-
|
34
|
-
def description
|
35
|
-
%{m[ethod] sig[nature] <obj>\tshow the signature of a method}
|
36
|
-
end
|
37
|
-
end
|
38
|
-
end if have_methodsig
|
39
|
-
|
40
2
|
# Implements byebug's 'method' command.
|
41
3
|
class MethodCommand < Command
|
42
4
|
include Columnize
|
@@ -47,17 +9,16 @@ module Byebug
|
|
47
9
|
|
48
10
|
def execute
|
49
11
|
obj = bb_eval(@match.post_match)
|
50
|
-
if @match[1] ==
|
12
|
+
if @match[1] == 'iv'
|
51
13
|
obj.instance_variables.sort.each do |v|
|
52
14
|
print "#{v} = #{obj.instance_variable_get(v).inspect}\n"
|
53
15
|
end
|
54
16
|
elsif @match[1]
|
55
|
-
print "#{columnize(obj.methods.sort(),
|
17
|
+
print "#{columnize(obj.methods.sort(), Setting[:width])}\n"
|
18
|
+
elsif !obj.kind_of?(Module)
|
19
|
+
print "Should be Class/Module: #{@match.post_match}\n"
|
56
20
|
else
|
57
|
-
|
58
|
-
obj.kind_of? Module
|
59
|
-
print "#{columnize(obj.instance_methods(false).sort(),
|
60
|
-
Command.settings[:width])}\n"
|
21
|
+
print "#{columnize(obj.instance_methods(false).sort(), Setting[:width])}\n"
|
61
22
|
end
|
62
23
|
end
|
63
24
|
|
@@ -73,5 +34,4 @@ module Byebug
|
|
73
34
|
end
|
74
35
|
end
|
75
36
|
end
|
76
|
-
|
77
37
|
end
|
@@ -16,15 +16,6 @@ module Byebug
|
|
16
16
|
self.allow_in_control = true
|
17
17
|
self.allow_in_post_mortem = false
|
18
18
|
|
19
|
-
register_setting_get(:autoreload) do
|
20
|
-
Byebug.class_variable_get(:@@autoreload)
|
21
|
-
end
|
22
|
-
|
23
|
-
register_setting_set(:autoreload) do |value|
|
24
|
-
Byebug.class_variable_set(:@@autoreload, value)
|
25
|
-
end
|
26
|
-
Command.settings[:autoreload] = true
|
27
|
-
|
28
19
|
def regexp
|
29
20
|
/^\s* r(?:eload)? \s*$/x
|
30
21
|
end
|
@@ -32,11 +23,9 @@ module Byebug
|
|
32
23
|
def execute
|
33
24
|
Byebug.source_reload
|
34
25
|
print "Source code is reloaded. Automatic reloading is " \
|
35
|
-
"#{
|
26
|
+
"#{Setting[:autoreload] ? 'on' : 'off'}.\n"
|
36
27
|
end
|
37
28
|
|
38
|
-
private
|
39
|
-
|
40
29
|
class << self
|
41
30
|
def names
|
42
31
|
%w(reload)
|
data/lib/byebug/commands/repl.rb
CHANGED
@@ -18,9 +18,9 @@ module IRB
|
|
18
18
|
end
|
19
19
|
|
20
20
|
require 'irb'
|
21
|
-
ExtendCommandBundle.def_extend_command
|
22
|
-
ExtendCommandBundle.def_extend_command
|
23
|
-
ExtendCommandBundle.def_extend_command
|
21
|
+
ExtendCommandBundle.def_extend_command 'cont', :Continue
|
22
|
+
ExtendCommandBundle.def_extend_command 'next', :Next
|
23
|
+
ExtendCommandBundle.def_extend_command 'step', :Step
|
24
24
|
|
25
25
|
def self.start_session(binding)
|
26
26
|
unless @__initialized ||= false
|
@@ -37,7 +37,7 @@ module IRB
|
|
37
37
|
@CONF[:IRB_RC].call(irb.context) if @CONF[:IRB_RC]
|
38
38
|
@CONF[:MAIN_CONTEXT] = irb.context
|
39
39
|
|
40
|
-
trap(
|
40
|
+
trap('SIGINT') do
|
41
41
|
irb.signal_handle
|
42
42
|
end
|
43
43
|
|
@@ -51,13 +51,6 @@ module Byebug
|
|
51
51
|
|
52
52
|
# Implements byebug's "irb" command.
|
53
53
|
class IrbCommand < Command
|
54
|
-
register_setting_get(:autoirb) do
|
55
|
-
IrbCommand.always_run
|
56
|
-
end
|
57
|
-
register_setting_set(:autoirb) do |value|
|
58
|
-
IrbCommand.always_run = value
|
59
|
-
end
|
60
|
-
|
61
54
|
def regexp
|
62
55
|
/^\s* irb \s*$/x
|
63
56
|
end
|
@@ -73,11 +66,11 @@ module Byebug
|
|
73
66
|
when :cont
|
74
67
|
@state.proceed
|
75
68
|
when :step
|
76
|
-
force =
|
69
|
+
force = Setting[:forcestep]
|
77
70
|
@state.context.step_into 1, force
|
78
71
|
@state.proceed
|
79
72
|
when :next
|
80
|
-
force =
|
73
|
+
force = Setting[:forcestep]
|
81
74
|
@state.context.step_over 1, @state.frame_pos, force
|
82
75
|
@state.proceed
|
83
76
|
else
|
@@ -86,7 +79,6 @@ module Byebug
|
|
86
79
|
end
|
87
80
|
end
|
88
81
|
|
89
|
-
|
90
82
|
class << self
|
91
83
|
def names
|
92
84
|
%w(irb)
|
@@ -134,5 +126,4 @@ module Byebug
|
|
134
126
|
end
|
135
127
|
end
|
136
128
|
end if has_pry
|
137
|
-
|
138
129
|
end
|
data/lib/byebug/commands/save.rb
CHANGED
@@ -38,13 +38,8 @@ module Byebug
|
|
38
38
|
|
39
39
|
def save_settings(file)
|
40
40
|
# FIXME put routine in set
|
41
|
-
%w(autoeval basename testing).each do |setting|
|
42
|
-
|
43
|
-
file.puts "set #{setting} #{on_off}"
|
44
|
-
end
|
45
|
-
%w(autolist autoirb).each do |setting|
|
46
|
-
on_off = show_onoff(Command.settings[setting.to_sym] > 0)
|
47
|
-
file.puts "set #{setting} #{on_off}"
|
41
|
+
%w(autoeval autoirb autolist basename testing).each do |setting|
|
42
|
+
file.puts "set #{setting} #{Setting[setting.to_sym]}"
|
48
43
|
end
|
49
44
|
end
|
50
45
|
|