trepanning 0.0.4 → 0.0.6
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/ChangeLog +161 -0
- data/NEWS +10 -0
- data/Rakefile +13 -19
- data/app/frame.rb +1 -1
- data/app/irb.rb +1 -1
- data/app/util.rb +3 -10
- data/data/irbrc +1 -1
- data/lib/trepanning.rb +2 -2
- data/processor/command/alias.rb +10 -11
- data/processor/command/backtrace.rb +8 -9
- data/processor/command/base/cmd.rb +4 -0
- data/processor/command/base/subcmd.rb +0 -1
- data/processor/command/base/submgr.rb +12 -3
- data/processor/command/break.rb +14 -15
- data/processor/command/condition.rb +11 -12
- data/processor/command/continue.rb +10 -11
- data/processor/command/debug.rb +7 -8
- data/processor/command/delete.rb +10 -9
- data/processor/command/directory.rb +1 -1
- data/processor/command/disable.rb +8 -9
- data/processor/command/disassemble.rb +7 -8
- data/processor/command/display.rb +10 -11
- data/processor/command/down.rb +8 -9
- data/processor/command/enable.rb +9 -10
- data/processor/command/exit.rb +11 -10
- data/processor/command/finish.rb +12 -11
- data/processor/command/frame.rb +3 -4
- data/processor/command/help.rb +14 -16
- data/processor/command/info.rb +7 -8
- data/processor/command/irb.rb +13 -14
- data/processor/command/kill.rb +21 -10
- data/processor/command/list.rb +36 -36
- data/processor/command/macro.rb +4 -5
- data/processor/command/next.rb +19 -20
- data/processor/command/nocache.rb +3 -4
- data/processor/command/{print.rb → pr.rb} +11 -9
- data/processor/command/ps.rb +8 -8
- data/processor/command/quit.rb +17 -15
- data/processor/command/raise.rb +11 -10
- data/processor/command/reload.rb +4 -5
- data/processor/command/restart.rb +11 -10
- data/processor/command/save.rb +12 -9
- data/processor/command/set.rb +14 -15
- data/processor/command/set_subcmd/debug_subcmd/dbgr.rb +1 -1
- data/processor/command/set_subcmd/debug_subcmd/skip.rb +1 -1
- data/processor/command/show.rb +7 -7
- data/processor/command/show_subcmd/alias.rb +3 -4
- data/processor/command/show_subcmd/args.rb +0 -2
- data/processor/command/show_subcmd/auto.rb +2 -3
- data/processor/command/show_subcmd/basename.rb +0 -3
- data/processor/command/show_subcmd/debug.rb +2 -1
- data/processor/command/show_subcmd/debug_subcmd/dbgr.rb +1 -1
- data/processor/command/show_subcmd/different.rb +0 -3
- data/processor/command/show_subcmd/events.rb +0 -2
- data/processor/command/show_subcmd/macro.rb +2 -5
- data/processor/command/show_subcmd/max.rb +2 -1
- data/processor/command/show_subcmd/trace.rb +2 -2
- data/processor/command/source.rb +9 -8
- data/processor/command/step.rb +28 -29
- data/processor/command/stepi.rb +1 -1
- data/processor/command/unalias.rb +4 -5
- data/processor/command/undisplay.rb +4 -5
- data/processor/command/up.rb +9 -10
- data/processor/eval.rb +6 -2
- data/processor/frame.rb +32 -26
- data/processor/main.rb +1 -1
- data/processor/mock.rb +9 -3
- data/processor/running.rb +11 -7
- data/processor/validate.rb +1 -2
- data/test/functional/test-fn_helper.rb +42 -0
- data/test/functional/test-raise.rb +1 -1
- data/test/functional/test-return.rb +2 -2
- data/test/unit/test-app-util.rb +3 -4
- data/test/unit/test-base-subcmd.rb +2 -1
- data/test/unit/test-cmd-help.rb +4 -4
- data/test/unit/test-proc-frame.rb +1 -2
- data/test/unit/test-proc-main.rb +1 -1
- metadata +10 -7
data/processor/command/macro.rb
CHANGED
@@ -50,12 +50,11 @@ end
|
|
50
50
|
|
51
51
|
if __FILE__ == $0
|
52
52
|
require_relative '../mock'
|
53
|
-
|
54
|
-
dbgr, cmd = MockDebugger::setup(name)
|
53
|
+
dbgr, cmd = MockDebugger::setup
|
55
54
|
cmdproc = dbgr.core.processor
|
56
|
-
[
|
57
|
-
|
58
|
-
|
55
|
+
["#{cmd.name} foo Proc.new{|x, y| x+y}",
|
56
|
+
"#{cmd.name} bad x+1",
|
57
|
+
"#{cmd.name} bad2 1+2"].each do |cmdline|
|
59
58
|
args = cmdline.split
|
60
59
|
cmd_argstr = cmdline[args[0].size..-1].lstrip
|
61
60
|
cmdproc.instance_variable_set('@cmd_argstr', cmd_argstr)
|
data/processor/command/next.rb
CHANGED
@@ -5,13 +5,14 @@ require_relative 'base/cmd'
|
|
5
5
|
class Trepan::Command::NextCommand < Trepan::Command
|
6
6
|
|
7
7
|
unless defined?(HELP)
|
8
|
-
|
9
|
-
|
8
|
+
NAME = File.basename(__FILE__, '.rb')
|
9
|
+
HELP = <<-HELP
|
10
|
+
#{NAME}[+|=|-|<|>|!|<>] [EVENT-NAME...] [count]
|
10
11
|
|
11
12
|
Step one statement ignoring steps into function calls at this level.
|
12
13
|
Sometimes this is called 'step over'.
|
13
14
|
|
14
|
-
With an integer argument, perform '
|
15
|
+
With an integer argument, perform '#{NAME}' that many times. However if
|
15
16
|
an exception occurs at this level, or we 'return' or 'yield' or the
|
16
17
|
thread changes, we stop regardless of count.
|
17
18
|
|
@@ -24,29 +25,28 @@ If no suffix is given, the debugger setting 'different'
|
|
24
25
|
determines this behavior.
|
25
26
|
|
26
27
|
Examples:
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
28
|
+
#{NAME} # #{NAME} 1 event, *any* event
|
29
|
+
#{NAME} 1 # same as above
|
30
|
+
#{NAME}+ # same but force stopping on a new line
|
31
|
+
#{NAME}= # same but force stopping on a new line a new frame added
|
32
|
+
#{NAME}- # same but force stopping on a new line a new frame added
|
33
|
+
#{NAME} 5/5+0 # same as above
|
34
|
+
#{NAME} line # #{NAME} using only line events
|
35
|
+
#{NAME} call # #{NAME} using only call call events
|
36
|
+
#{NAME}<> # #{NAME} using call return events at this level or below
|
37
|
+
HELP
|
37
38
|
|
38
|
-
ALIASES = %
|
39
|
+
ALIASES = %W(n #{NAME}+ #{NAME}- #{NAME}< #{NAME}> #{NAME}<> #{NAME}! n> n< n! n+ n-
|
39
40
|
n<> n=)
|
40
41
|
CATEGORY = 'running'
|
41
42
|
# execution_set = ['Running']
|
42
43
|
MAX_ARGS = 1 # Need at most this many. FIXME: will be eventually 2
|
43
|
-
NAME = File.basename(__FILE__, '.rb')
|
44
44
|
NEED_RUNNING = true
|
45
45
|
SHORT_HELP = 'Step program without entering called functions'
|
46
46
|
end
|
47
47
|
|
48
48
|
# This method runs the command
|
49
|
-
def run(args)
|
49
|
+
def run(args)
|
50
50
|
opts = @proc.parse_next_step_suffix(args[0])
|
51
51
|
if args.size == 1
|
52
52
|
# Form is: "next" which means "next 1"
|
@@ -55,7 +55,7 @@ Examples:
|
|
55
55
|
count_str = args[1]
|
56
56
|
opts = {
|
57
57
|
:msg_on_error =>
|
58
|
-
"The '
|
58
|
+
"The '#{NAME}' command argument must eval to an integer. Got: %s" %
|
59
59
|
count_str,
|
60
60
|
:min_value => 1
|
61
61
|
}
|
@@ -70,9 +70,8 @@ end
|
|
70
70
|
|
71
71
|
if __FILE__ == $0
|
72
72
|
require_relative '../mock'
|
73
|
-
|
74
|
-
|
75
|
-
[%w(n 5), %w(next 1+2), %w(n foo)].each do |c|
|
73
|
+
dbgr, cmd = MockDebugger::setup
|
74
|
+
[%w(n 5), %W(#{cmd.name} 1+2), %w(n foo)].each do |c|
|
76
75
|
dbgr.core.step_count = 0
|
77
76
|
cmd.proc.leave_cmd_loop = false
|
78
77
|
result = cmd.run(c)
|
@@ -15,7 +15,7 @@ class Trepan::Command::NoCacheCommand < Trepan::Command
|
|
15
15
|
end
|
16
16
|
|
17
17
|
# This method runs the command
|
18
|
-
def run(args)
|
18
|
+
def run(args)
|
19
19
|
if @proc.frame.iseq
|
20
20
|
puts @proc.frame.iseq.disassemble
|
21
21
|
count = @proc.frame.iseq.killcache
|
@@ -27,7 +27,6 @@ end
|
|
27
27
|
|
28
28
|
if __FILE__ == $0
|
29
29
|
require_relative '../mock'
|
30
|
-
|
31
|
-
|
32
|
-
cmd.run([name])
|
30
|
+
dbgr, cmd = MockDebugger::setup
|
31
|
+
cmd.run([cmd.name])
|
33
32
|
end
|
@@ -2,22 +2,25 @@
|
|
2
2
|
# Copyright (C) 2010 Rocky Bernstein <rockyb@rubyforge.net>
|
3
3
|
require_relative 'base/cmd'
|
4
4
|
require_relative '../eval'
|
5
|
-
class Trepan::Command::
|
5
|
+
class Trepan::Command::PrCommand < Trepan::Command
|
6
6
|
|
7
7
|
unless defined?(HELP)
|
8
|
-
|
9
|
-
|
8
|
+
NAME = File.basename(__FILE__, '.rb')
|
9
|
+
HELP = <<-HELP
|
10
|
+
"#{NAME} EXPRESSION
|
10
11
|
|
11
12
|
Print the value of the EXPRESSION. Variables accessible are those of the
|
12
13
|
environment of the selected stack frame, plus globals.
|
13
14
|
|
14
15
|
If the length output string large, the first part of the value is
|
15
|
-
shown and ... indicates it has been truncated.
|
16
|
+
shown and ... indicates it has been truncated.
|
17
|
+
|
18
|
+
See 'set max string' to change the string truncation limit.
|
19
|
+
HELP
|
16
20
|
|
17
21
|
# ALIASES = %w(p)
|
18
22
|
CATEGORY = 'data'
|
19
|
-
|
20
|
-
SHORT_HELP = 'Print expression'
|
23
|
+
SHORT_HELP = 'print expression truncating long output'
|
21
24
|
end
|
22
25
|
|
23
26
|
def run(args)
|
@@ -27,11 +30,10 @@ end
|
|
27
30
|
|
28
31
|
if __FILE__ == $0
|
29
32
|
require_relative '../mock'
|
30
|
-
|
31
|
-
dbgr, cmd = MockDebugger::setup(name)
|
33
|
+
dbgr, cmd = MockDebugger::setup
|
32
34
|
arg_str = '1 + 2'
|
33
35
|
cmd.proc.instance_variable_set('@cmd_argstr', arg_str)
|
34
|
-
cmd.run([name, arg_str])
|
36
|
+
cmd.run([cmd.name, arg_str])
|
35
37
|
cmdproc = dbgr.core.processor
|
36
38
|
cmds = dbgr.core.processor.commands
|
37
39
|
end
|
data/processor/command/ps.rb
CHANGED
@@ -5,14 +5,15 @@ require_relative '../eval'
|
|
5
5
|
class Trepan::Command::PsCommand < Trepan::Command
|
6
6
|
|
7
7
|
unless defined?(HELP)
|
8
|
-
|
9
|
-
|
8
|
+
NAME = File.basename(__FILE__, '.rb')
|
9
|
+
HELP = <<-HELP
|
10
|
+
#{NAME} ARRAY
|
10
11
|
|
11
|
-
Print the value of the ARRAY in columns and sorted.
|
12
|
+
Print the value of the ARRAY in columns and sorted.
|
13
|
+
HELP
|
12
14
|
|
13
15
|
CATEGORY = 'data'
|
14
16
|
MIN_ARGS = 1 # Need least this many
|
15
|
-
NAME = File.basename(__FILE__, '.rb')
|
16
17
|
SHORT_HELP = 'Print array sorted and in columns'
|
17
18
|
end
|
18
19
|
|
@@ -29,12 +30,11 @@ end
|
|
29
30
|
|
30
31
|
if __FILE__ == $0
|
31
32
|
require_relative '../mock'
|
32
|
-
|
33
|
-
dbgr, cmd = MockDebugger::setup(name)
|
33
|
+
dbgr, cmd = MockDebugger::setup
|
34
34
|
arg_str = '(1..30).to_a'
|
35
35
|
cmd.proc.instance_variable_set('@cmd_argstr', arg_str)
|
36
|
-
cmd.run([name, arg_str])
|
36
|
+
cmd.run([cmd.name, arg_str])
|
37
37
|
arg_str = '1'
|
38
38
|
cmd.proc.instance_variable_set('@cmd_argstr', arg_str)
|
39
|
-
cmd.run([name, arg_str])
|
39
|
+
cmd.run([cmd.name, arg_str])
|
40
40
|
end
|
data/processor/command/quit.rb
CHANGED
@@ -3,8 +3,11 @@ require_relative 'base/cmd'
|
|
3
3
|
class Trepan::Command::QuitCommand < Trepan::Command
|
4
4
|
|
5
5
|
unless defined?(HELP)
|
6
|
-
|
7
|
-
|
6
|
+
NAME = File.basename(__FILE__, '.rb')
|
7
|
+
HELP = <<-HELP
|
8
|
+
#{NAME}[!] [unconditionally] [exit code]
|
9
|
+
|
10
|
+
gentle termination
|
8
11
|
|
9
12
|
The program being debugged is exited via exit() which runs the Kernel
|
10
13
|
at_exit finalizers. If a return code is given, that is the return code
|
@@ -12,17 +15,17 @@ passed to exit() - presumably the return code that will be passed back
|
|
12
15
|
to the OS. If no exit code is given, 0 is used.
|
13
16
|
|
14
17
|
Examples:
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
18
|
+
#{NAME} # quit prompting if we are interactive
|
19
|
+
#{NAME} conditionally # quit without prompting
|
20
|
+
#{NAME}! # same as above
|
21
|
+
#{NAME} 0 # same as "quit"
|
22
|
+
#{NAME}! 1 # unconditional quit setting exit code 1
|
20
23
|
|
21
|
-
See also the commands "exit" and "kill".
|
24
|
+
See also the commands "exit" and "kill".
|
25
|
+
HELP
|
22
26
|
|
23
|
-
ALIASES = %
|
27
|
+
ALIASES = %W(#{NAME}! q q!)
|
24
28
|
CATEGORY = 'support'
|
25
|
-
NAME = File.basename(__FILE__, '.rb')
|
26
29
|
MAX_ARGS = 2 # Need at most this many
|
27
30
|
SHORT_HELP = 'Quit program - gently'
|
28
31
|
end
|
@@ -31,7 +34,7 @@ See also the commands "exit" and "kill".'
|
|
31
34
|
# whether exit! or exit is used.
|
32
35
|
|
33
36
|
# This method runs the command
|
34
|
-
def run(args)
|
37
|
+
def run(args)
|
35
38
|
unconditional =
|
36
39
|
if args.size > 1 && args[1] == 'unconditionally'
|
37
40
|
args.shift
|
@@ -54,9 +57,8 @@ end
|
|
54
57
|
|
55
58
|
if __FILE__ == $0
|
56
59
|
require_relative '../mock'
|
60
|
+
dbgr, cmd = MockDebugger::setup
|
57
61
|
name = File.basename(__FILE__, '.rb')
|
58
|
-
|
59
|
-
|
60
|
-
fork { cmd.run([name]) }
|
61
|
-
cmd.run([name, '5'])
|
62
|
+
fork { cmd.run([cmd.name]) }
|
63
|
+
cmd.run([cmd.name, '5'])
|
62
64
|
end
|
data/processor/command/raise.rb
CHANGED
@@ -3,19 +3,21 @@ require_relative 'base/cmd'
|
|
3
3
|
class Trepan::Command::RaiseCommand < Trepan::Command
|
4
4
|
|
5
5
|
unless defined?(HELP)
|
6
|
-
|
7
|
-
|
6
|
+
NAME = File.basename(__FILE__, '.rb')
|
7
|
+
HELP = <<-HELP
|
8
|
+
#{NAME} [exception-name]
|
8
9
|
|
9
|
-
Raise an
|
10
|
+
Raise an EXCEPTION-NAME in the debugged program. If no exception name
|
11
|
+
is given, raise RuntimeError.
|
12
|
+
HELP
|
10
13
|
|
11
14
|
CATEGORY = 'running'
|
12
15
|
MAX_ARGS = 1 # Need at most this many
|
13
|
-
NAME = File.basename(__FILE__, '.rb')
|
14
16
|
SHORT_HELP = 'Raise an exception in the debugged program'
|
15
17
|
end
|
16
18
|
|
17
19
|
# This method runs the command
|
18
|
-
def run(args)
|
20
|
+
def run(args)
|
19
21
|
exception =
|
20
22
|
if args.size > 1
|
21
23
|
except_str = args[1..-1].join(' ')
|
@@ -39,9 +41,8 @@ end
|
|
39
41
|
|
40
42
|
if __FILE__ == $0
|
41
43
|
require_relative '../mock'
|
42
|
-
|
43
|
-
|
44
|
-
puts cmd.run([name, '
|
45
|
-
puts cmd.run([name, '
|
46
|
-
puts cmd.run([name, 'RuntimeError'])
|
44
|
+
dbgr, cmd = MockDebugger::setup
|
45
|
+
puts cmd.run([cmd.name, 'NotanException'])
|
46
|
+
puts cmd.run([cmd.name, '[5]'])
|
47
|
+
puts cmd.run([cmd.name, 'RuntimeError'])
|
47
48
|
end
|
data/processor/command/reload.rb
CHANGED
@@ -3,10 +3,10 @@
|
|
3
3
|
require_relative 'base/submgr'
|
4
4
|
|
5
5
|
class Trepan::Command::ReloadCommand < Trepan::SubcommandMgr
|
6
|
+
NAME = File.basename(__FILE__, '.rb')
|
6
7
|
ALIASES = %w(rel)
|
7
8
|
HELP = 'Reload information'
|
8
9
|
CATEGORY = 'data'
|
9
|
-
NAME = File.basename(__FILE__, '.rb')
|
10
10
|
NEED_STACK = false
|
11
11
|
SHORT_HELP = 'Reload information'
|
12
12
|
def initialize(proc)
|
@@ -17,12 +17,11 @@ end
|
|
17
17
|
|
18
18
|
if __FILE__ == $0
|
19
19
|
require_relative '../mock'
|
20
|
-
|
21
|
-
dbgr, cmd = MockDebugger::setup(name)
|
20
|
+
dbgr, cmd = MockDebugger::setup
|
22
21
|
|
23
22
|
# require 'trepanning'
|
24
23
|
# Trepan.debug(:set_restart => true)
|
25
24
|
xx = Trepan::Command::ReloadCommand.new(cmd)
|
26
|
-
cmd.run([name])
|
27
|
-
cmd.run([name, 'command'])
|
25
|
+
cmd.run([cmd.name])
|
26
|
+
cmd.run([cmd.name, 'command'])
|
28
27
|
end
|
@@ -5,19 +5,22 @@ require_relative '../../app/run'
|
|
5
5
|
class Trepan::Command::RestartCommand < Trepan::Command
|
6
6
|
|
7
7
|
unless defined?(HELP)
|
8
|
+
NAME = File.basename(__FILE__, '.rb')
|
8
9
|
ALIASES = %w(R run)
|
9
|
-
HELP =
|
10
|
-
|
11
|
-
|
10
|
+
HELP = <<-HELP
|
11
|
+
#{NAME}
|
12
|
+
|
13
|
+
Restart debugger and program via an exec call. All state is lost, and
|
14
|
+
new copy of the debugger is used.
|
15
|
+
HELP
|
12
16
|
|
13
17
|
CATEGORY = 'running'
|
14
18
|
MAX_ARGS = 0 # Need at most this many
|
15
|
-
NAME = File.basename(__FILE__, '.rb')
|
16
19
|
SHORT_HELP = '(Hard) restart of program via exec()'
|
17
20
|
end
|
18
21
|
|
19
22
|
# This method runs the command
|
20
|
-
def run(args)
|
23
|
+
def run(args)
|
21
24
|
|
22
25
|
dbgr = @proc.dbgr
|
23
26
|
argv = dbgr.restart_argv
|
@@ -46,12 +49,10 @@ end
|
|
46
49
|
|
47
50
|
if __FILE__ == $0
|
48
51
|
exit if ARGV[0] == 'exit'
|
49
|
-
|
50
52
|
require_relative '../mock'
|
51
|
-
|
52
|
-
dbgr, cmd = MockDebugger::setup(name)
|
53
|
+
dbgr, cmd = MockDebugger::setup
|
53
54
|
dbgr.restart_argv = []
|
54
|
-
cmd.run([name])
|
55
|
+
cmd.run([cmd.name])
|
55
56
|
dbgr.restart_argv = [File.expand_path($0), 'exit']
|
56
|
-
cmd.run([name])
|
57
|
+
cmd.run([cmd.name])
|
57
58
|
end
|
data/processor/command/save.rb
CHANGED
@@ -4,17 +4,21 @@ require_relative 'base/cmd'
|
|
4
4
|
class Trepan::Command::SaveCommand < Trepan::Command
|
5
5
|
|
6
6
|
unless defined?(HELP)
|
7
|
-
|
8
|
-
|
7
|
+
NAME = File.basename(__FILE__, '.rb')
|
8
|
+
HELP = <<-HELP
|
9
|
+
#{NAME} [filename]
|
10
|
+
|
11
|
+
Save settings to file FILENAME. If FILENAME not given one will be made
|
12
|
+
selected.
|
13
|
+
HELP
|
9
14
|
|
10
15
|
CATEGORY = 'running'
|
11
16
|
MAX_ARGS = 1 # Need at most this many
|
12
|
-
NAME = File.basename(__FILE__, '.rb')
|
13
17
|
SHORT_HELP = 'Send debugger state to a file'
|
14
18
|
end
|
15
19
|
|
16
20
|
# This method runs the command
|
17
|
-
def run(args)
|
21
|
+
def run(args)
|
18
22
|
save_filename =
|
19
23
|
if args.size > 1
|
20
24
|
args[1]
|
@@ -51,10 +55,9 @@ end
|
|
51
55
|
|
52
56
|
if __FILE__ == $0
|
53
57
|
require_relative '../mock'
|
54
|
-
|
55
|
-
dbgr, cmd = MockDebugger::setup(name)
|
58
|
+
dbgr, cmd = MockDebugger::setup
|
56
59
|
require 'tmpdir'
|
57
|
-
cmd.run([name, Dir.tmpdir])
|
58
|
-
cmd.run([name])
|
59
|
-
cmd.run([name, File.join(Dir.tmpdir, 'save_file.txt')])
|
60
|
+
cmd.run([cmd.name, Dir.tmpdir])
|
61
|
+
cmd.run([cmd.name])
|
62
|
+
cmd.run([cmd.name, File.join(Dir.tmpdir, 'save_file.txt')])
|
60
63
|
end
|
data/processor/command/set.rb
CHANGED
@@ -4,22 +4,22 @@ require_relative 'base/submgr'
|
|
4
4
|
|
5
5
|
class Trepan::Command::SetCommand < Trepan::SubcommandMgr
|
6
6
|
unless defined?(HELP)
|
7
|
-
|
8
|
-
|
7
|
+
NAME = File.basename(__FILE__, '.rb')
|
8
|
+
HELP = <<-HELP
|
9
|
+
Modifies parts of the debugger environment.
|
9
10
|
|
10
11
|
You can give unique prefix of the name of a subcommand to get
|
11
12
|
information about just that subcommand.
|
12
13
|
|
13
|
-
Type "
|
14
|
-
Type "help
|
14
|
+
Type "#{NAME}" for a list of "#{NAME}" subcommands and what they do.
|
15
|
+
Type "help #{NAME} *" for just the list of "#{NAME}" subcommands.
|
15
16
|
|
16
|
-
For compatability with older ruby-debug "
|
17
|
-
same as "
|
18
|
-
as "
|
19
|
-
|
17
|
+
For compatability with older ruby-debug "#{NAME} auto..." is the
|
18
|
+
same as "#{NAME} auto ...". For example "#{NAME} autolist" is the same
|
19
|
+
as "#{NAME} auto list".
|
20
|
+
HELP
|
20
21
|
|
21
22
|
CATEGORY = 'support'
|
22
|
-
NAME = File.basename(__FILE__, '.rb')
|
23
23
|
NEED_STACK = false
|
24
24
|
SHORT_HELP = 'Modify parts of the debugger environment'
|
25
25
|
end
|
@@ -38,10 +38,9 @@ end
|
|
38
38
|
|
39
39
|
if __FILE__ == $0
|
40
40
|
require_relative '../mock'
|
41
|
-
|
42
|
-
|
43
|
-
cmd.run([name])
|
44
|
-
cmd.run([name, '
|
45
|
-
cmd.run([name, '
|
46
|
-
cmd.run([name, 'basename'])
|
41
|
+
dbgr, cmd = MockDebugger::setup
|
42
|
+
cmd.run([cmd.name])
|
43
|
+
cmd.run([cmd.name, 'autolist'])
|
44
|
+
cmd.run([cmd.name, 'autoeval', 'off'])
|
45
|
+
cmd.run([cmd.name, 'basename'])
|
47
46
|
end
|