rb8-trepanning 0.1.5 → 0.1.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/CHANGES +18 -4
- data/ChangeLog +100 -87
- data/Makefile +23 -4
- data/README.textile +3 -3
- data/Rakefile +26 -20
- data/app/complete.rb +13 -13
- data/app/default.rb +8 -8
- data/app/display.rb +7 -7
- data/app/frame.rb +8 -8
- data/app/irb.rb +15 -15
- data/app/options.rb +25 -25
- data/app/run.rb +16 -8
- data/app/util.rb +7 -7
- data/bin/trepan8 +2 -2
- data/check-filter.rb +21 -0
- data/interface.rb +4 -4
- data/interface/user.rb +11 -11
- data/io.rb +18 -19
- data/io/input.rb +14 -12
- data/lib/debugger.rb +3 -1
- data/lib/trepanning.rb +30 -28
- data/processor.rb +41 -38
- data/processor/command.rb +9 -9
- data/processor/command/alias.rb +6 -6
- data/processor/command/down.rb +1 -2
- data/processor/command/edit.rb +12 -8
- data/processor/command/eval.rb +7 -7
- data/processor/command/info_subcmd/macro.rb +6 -6
- data/processor/command/info_subcmd/program.rb +5 -1
- data/processor/command/macro.rb +6 -6
- data/processor/command/show_subcmd/abbrev.rb +2 -2
- data/processor/command/up.rb +1 -2
- data/processor/complete.rb +120 -0
- data/processor/default.rb +13 -9
- data/processor/load_cmds.rb +18 -97
- data/processor/location.rb +34 -31
- data/processor/msg.rb +5 -5
- data/processor/validate.rb +44 -35
- data/test/data/break_loop_bug.right +2 -2
- data/test/data/edit.cmd +1 -1
- data/test/data/edit.right +7 -1
- data/test/data/printvar.right +2 -2
- data/test/data/raise.right +0 -1
- data/test/data/trace-mingw.right +28 -0
- data/test/integration/.gitignore +1 -0
- data/test/integration/test-raise.rb +10 -1
- data/test/integration/test-trace.rb +10 -6
- data/test/unit/test-app-options.rb +9 -3
- data/test/unit/test-app-run.rb +8 -1
- data/test/unit/test-cmd-alias.rb +2 -2
- data/test/unit/test-proc-default.rb +34 -0
- metadata +10 -6
data/processor/command/alias.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2010,
|
1
|
+
# Copyright (C) 2010-2011, 2013 Rocky Bernstein <rockyb@rubyforge.net>
|
2
2
|
require 'rubygems'; require 'require_relative'
|
3
3
|
require_relative '../command'
|
4
4
|
|
@@ -9,7 +9,7 @@ class Trepan::Command::AliasCommand < Trepan::Command
|
|
9
9
|
HELP = <<-HELP
|
10
10
|
#{NAME} ALIAS COMMAND
|
11
11
|
|
12
|
-
Add alias ALIAS for a debugger command COMMAND.
|
12
|
+
Add alias ALIAS for a debugger command COMMAND.
|
13
13
|
|
14
14
|
Add an alias when you want to use a command abbreviation for a command
|
15
15
|
that would otherwise be ambigous. For example, by default we make 's'
|
@@ -20,7 +20,7 @@ Example:
|
|
20
20
|
|
21
21
|
alias cat list # "cat rubyfile.rb" is the same as "list rubyfile.rb"
|
22
22
|
alias s step # "s" is now an alias for "step".
|
23
|
-
# The above
|
23
|
+
# The above example is done by default.
|
24
24
|
|
25
25
|
See also 'unalias' and 'show #{NAME}'.
|
26
26
|
HELP
|
@@ -30,8 +30,8 @@ See also 'unalias' and 'show #{NAME}'.
|
|
30
30
|
NEED_STACK = true
|
31
31
|
SHORT_HELP = 'Add an alias for a debugger command'
|
32
32
|
end
|
33
|
-
|
34
|
-
# Run command.
|
33
|
+
|
34
|
+
# Run command.
|
35
35
|
def run(args)
|
36
36
|
if args.size == 1
|
37
37
|
@proc.commands['show'].run(%W(show #{NAME}))
|
@@ -43,7 +43,7 @@ See also 'unalias' and 'show #{NAME}'.
|
|
43
43
|
if @proc.commands.member?(command)
|
44
44
|
@proc.aliases[al] = command
|
45
45
|
if old_command
|
46
|
-
msg("Alias '#{al}' for command '#{command}' replaced old " +
|
46
|
+
msg("Alias '#{al}' for command '#{command}' replaced old " +
|
47
47
|
"alias for '#{old_command}'.")
|
48
48
|
else
|
49
49
|
msg "New alias '#{al}' for command '#{command}' created."
|
data/processor/command/down.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
|
-
# Copyright (C) 2010
|
2
|
+
# Copyright (C) 2010-2012 Rocky Bernstein <rockyb@rubyforge.net>
|
3
3
|
require 'rubygems'; require 'require_relative'
|
4
4
|
require_relative 'up'
|
5
5
|
|
@@ -19,7 +19,6 @@ is the most recent frame. If no count is given, move down 1.
|
|
19
19
|
See also 'up' and 'frame'.
|
20
20
|
HELP
|
21
21
|
|
22
|
-
ALIASES = %w(d)
|
23
22
|
NAME = File.basename(__FILE__, '.rb')
|
24
23
|
SHORT_HELP = 'Move frame in the direction of the caller of the last-selected frame'
|
25
24
|
}
|
data/processor/command/edit.rb
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
|
-
# Copyright (C) 2011 Rocky Bernstein <rockyb@rubyforge.net>
|
2
|
+
# Copyright (C) 2011, 2013 Rocky Bernstein <rockyb@rubyforge.net>
|
3
3
|
require 'rubygems'; require 'require_relative'
|
4
4
|
require_relative '../command'
|
5
5
|
|
6
6
|
class Trepan::Command::EditCommand < Trepan::Command
|
7
7
|
|
8
|
-
old_verbose = $VERBOSE
|
8
|
+
old_verbose = $VERBOSE
|
9
9
|
$VERBOSE = nil
|
10
10
|
NAME = File.basename(__FILE__, '.rb')
|
11
11
|
HELP = <<-HELP
|
@@ -30,7 +30,7 @@ Examples:
|
|
30
30
|
NEED_STACK = false
|
31
31
|
SHORT_HELP = 'Invoke an editor on some source code'
|
32
32
|
MAX_ARGS = 2
|
33
|
-
$VERBOSE = old_verbose
|
33
|
+
$VERBOSE = old_verbose
|
34
34
|
|
35
35
|
# FIXME: redo with locations and kparse.
|
36
36
|
def run(args)
|
@@ -38,28 +38,32 @@ Examples:
|
|
38
38
|
when 1
|
39
39
|
unless @proc.context
|
40
40
|
errmsg "We are not in a state that has an associated file."
|
41
|
-
return
|
41
|
+
return
|
42
42
|
end
|
43
43
|
file = @proc.frame.file
|
44
44
|
line = @proc.frame.line
|
45
45
|
when 2
|
46
46
|
line = Integer(args[1]) rescue nil
|
47
|
-
if line
|
47
|
+
if line
|
48
48
|
unless @proc.context
|
49
49
|
errmsg "We are not in a state that has an associated file."
|
50
|
-
return
|
50
|
+
return
|
51
51
|
end
|
52
52
|
file = @proc.frame.file
|
53
|
-
else
|
53
|
+
else
|
54
54
|
file = args[1]
|
55
55
|
line = 1
|
56
56
|
end
|
57
57
|
when 3
|
58
58
|
line, file = args[2], args[1]
|
59
59
|
else
|
60
|
-
errmsg "edit needs at most 2 args."
|
60
|
+
errmsg "edit needs at most 2 args."
|
61
61
|
end
|
62
62
|
editor = ENV['EDITOR'] || '/bin/ex'
|
63
|
+
unless File.executable?(editor)
|
64
|
+
errmsg "Editor #{editor} is not executable. Trying anyway..."
|
65
|
+
end
|
66
|
+
|
63
67
|
if File.readable?(file)
|
64
68
|
file = File.basename(file) if settings[:basename]
|
65
69
|
edit_cmd = "#{editor} +#{line} \"#{file}\""
|
data/processor/command/eval.rb
CHANGED
@@ -5,7 +5,7 @@ require_relative '../command'
|
|
5
5
|
|
6
6
|
class Trepan::Command::EvalCommand < Trepan::Command
|
7
7
|
|
8
|
-
old_verbose = $VERBOSE
|
8
|
+
old_verbose = $VERBOSE
|
9
9
|
$VERBOSE = nil
|
10
10
|
NAME = File.basename(__FILE__, '.rb')
|
11
11
|
HELP = <<-HELP
|
@@ -19,7 +19,7 @@ next to the inspect output of the value.
|
|
19
19
|
|
20
20
|
If no string is given, we run the string from the current source code
|
21
21
|
about to be run. If the command ends ? (via an alias) and no string is
|
22
|
-
given
|
22
|
+
given, the following translations occur:
|
23
23
|
|
24
24
|
{if|elsif|unless} expr [then] => expr
|
25
25
|
{until|while} expr [do] => expr
|
@@ -38,7 +38,7 @@ Examples:
|
|
38
38
|
#{NAME} @v
|
39
39
|
#{NAME} # Run current source-code line
|
40
40
|
#{NAME}? # but strips off leading 'if', 'while', ..
|
41
|
-
# from command
|
41
|
+
# from command
|
42
42
|
|
43
43
|
See also 'set autoeval'. The command helps one predict future execution.
|
44
44
|
See 'set buffer trace' for showing what may have already been run.
|
@@ -48,14 +48,14 @@ See 'set buffer trace' for showing what may have already been run.
|
|
48
48
|
CATEGORY = 'data'
|
49
49
|
NEED_STACK = true
|
50
50
|
SHORT_HELP = 'Run code in the current context'
|
51
|
-
$VERBOSE = old_verbose
|
51
|
+
$VERBOSE = old_verbose
|
52
52
|
|
53
53
|
def complete(prefix)
|
54
|
-
if prefix.empty?
|
54
|
+
if prefix.empty?
|
55
55
|
if @proc.leading_str.start_with?('eval?')
|
56
56
|
Trepan::Util.extract_expression(@proc.current_source_text)
|
57
57
|
else
|
58
|
-
@proc.current_source_text
|
58
|
+
@proc.current_source_text
|
59
59
|
end
|
60
60
|
else
|
61
61
|
prefix
|
@@ -66,7 +66,7 @@ See 'set buffer trace' for showing what may have already been run.
|
|
66
66
|
if args.size == 1
|
67
67
|
text = @proc.current_source_text.chomp
|
68
68
|
## FIXME turn into a subroutine and use in complete.
|
69
|
-
if '?' == args[0][-1..-1]
|
69
|
+
if '?' == args[0][-1..-1]
|
70
70
|
text = Trepan::Util::extract_expression(text)
|
71
71
|
msg "eval: #{text}"
|
72
72
|
end
|
@@ -1,5 +1,5 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
|
-
# Copyright (C) 2010,
|
2
|
+
# Copyright (C) 2010-2011, 2013 Rocky Bernstein <rockyb@rubyforge.net>
|
3
3
|
require 'rubygems'; require 'require_relative'
|
4
4
|
require_relative '../base/subcmd'
|
5
5
|
require_relative '../../../app/complete'
|
@@ -8,14 +8,14 @@ class Trepan::Subcommand::InfoMacro < Trepan::Subcommand
|
|
8
8
|
unless defined?(HELP)
|
9
9
|
Trepanning::Subcommand.set_name_prefix(__FILE__, self)
|
10
10
|
HELP = <<-HELP
|
11
|
-
#{CMD}
|
11
|
+
#{CMD}
|
12
12
|
#{CMD} *
|
13
13
|
#{CMD} MACRO1 [MACRO2 ..]
|
14
14
|
|
15
15
|
In the first form a list of the existing macro names are shown
|
16
16
|
in column format.
|
17
17
|
|
18
|
-
In the second form, all macro names and their definitions are
|
18
|
+
In the second form, all macro names and their definitions are shown.
|
19
19
|
|
20
20
|
In the last form the only definitions of the given macro names is shown.
|
21
21
|
HELP
|
@@ -29,12 +29,12 @@ In the last form the only definitions of the given macro names is shown.
|
|
29
29
|
|
30
30
|
def run(args)
|
31
31
|
if args.size > 2
|
32
|
-
macro_names =
|
33
|
-
if args.size == 3 && '*' == args[2]
|
32
|
+
macro_names =
|
33
|
+
if args.size == 3 && '*' == args[2]
|
34
34
|
@proc.macros.keys
|
35
35
|
else
|
36
36
|
args[2..-1]
|
37
|
-
end
|
37
|
+
end
|
38
38
|
macro_names.each do |macro_name|
|
39
39
|
if @proc.macros.member?(macro_name)
|
40
40
|
section "#{macro_name}:"
|
@@ -19,7 +19,8 @@ class Trepan::Subcommand::InfoProgram < Trepan::Subcommand
|
|
19
19
|
return
|
20
20
|
end
|
21
21
|
case @proc.event
|
22
|
-
when
|
22
|
+
when 'raise'
|
23
|
+
when 'post-mortem'
|
23
24
|
status = 'crashed'
|
24
25
|
else
|
25
26
|
status = 'stopped'
|
@@ -36,6 +37,9 @@ class Trepan::Subcommand::InfoProgram < Trepan::Subcommand
|
|
36
37
|
when :catchpoint
|
37
38
|
msg("Handling an uncaught exception `%s' (%s)." % [event_arg,
|
38
39
|
event_arg.class])
|
40
|
+
when :"post-mortem"
|
41
|
+
msg("It stopped in post-mortem exception `%s' (%s)." % [event_arg,
|
42
|
+
event_arg.class])
|
39
43
|
else
|
40
44
|
msg "unknown reason: %s" % @proc.context.stop_reason.to_s
|
41
45
|
end
|
data/processor/command/macro.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
|
-
# Copyright (C) 2010,
|
2
|
+
# Copyright (C) 2010-2011, 2013 Rocky Bernstein <rockyb@rubyforge.net>
|
3
3
|
require 'rubygems'; require 'require_relative'
|
4
4
|
require_relative '../command'
|
5
5
|
require_relative '../eval'
|
@@ -37,25 +37,25 @@ could do that this way:
|
|
37
37
|
|
38
38
|
macro fin+ Proc.new{|*args| ['finish \#{args[0]}' 'step']}
|
39
39
|
|
40
|
-
Invoking with
|
40
|
+
Invoking with
|
41
41
|
fin+ 3
|
42
42
|
|
43
43
|
would expand to ["finish 3", "step"]
|
44
44
|
|
45
|
-
If you were to add another parameter for 'step', the note that the
|
45
|
+
If you were to add another parameter for 'step', the note that the
|
46
46
|
invocation might be:
|
47
47
|
fin+ 3 2
|
48
48
|
|
49
49
|
rather than 'fin+(3,2)' or 'fin+ 3, 2'.
|
50
50
|
|
51
|
-
See also '
|
51
|
+
See also 'alias' and 'info macro'.
|
52
52
|
HELP
|
53
53
|
|
54
54
|
CATEGORY = 'support'
|
55
55
|
MIN_ARGS = 2 # Need at least this many
|
56
56
|
SHORT_HELP = 'Define a macro'
|
57
57
|
end
|
58
|
-
|
58
|
+
|
59
59
|
def run(args)
|
60
60
|
cmd_name = args[1]
|
61
61
|
cmd_argstr = @proc.cmd_argstr[cmd_name.size..-1].lstrip
|
@@ -70,7 +70,7 @@ See also 'show macro'.
|
|
70
70
|
end
|
71
71
|
end
|
72
72
|
end
|
73
|
-
|
73
|
+
|
74
74
|
if __FILE__ == $0
|
75
75
|
require_relative '../mock'
|
76
76
|
dbgr, cmd = MockDebugger::setup
|
@@ -1,12 +1,12 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
|
-
# Copyright (C) 2010
|
2
|
+
# Copyright (C) 2010-2012 Rocky Bernstein <rockyb@rubyforge.net>
|
3
3
|
require 'rubygems'; require 'require_relative'
|
4
4
|
require_relative '../base/subcmd'
|
5
5
|
|
6
6
|
class Trepan::Subcommand::ShowAbbrev < Trepan::ShowBoolSubcommand
|
7
7
|
unless defined?(HELP)
|
8
8
|
Trepanning::Subcommand.set_name_prefix(__FILE__, self)
|
9
|
-
HELP = "Show whether we allow
|
9
|
+
HELP = "Show whether we allow abbreviated debugger command names"
|
10
10
|
MIN_ABBREV = 'ab'.size
|
11
11
|
end
|
12
12
|
|
data/processor/command/up.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Copyright (C) 2010
|
1
|
+
# Copyright (C) 2010-2012 Rocky Bernstein <rockyb@rubyforge.net>
|
2
2
|
require 'rubygems'; require 'require_relative'
|
3
3
|
require_relative '../command'
|
4
4
|
|
@@ -18,7 +18,6 @@ the most recent frame. If no count is given, move up 1.
|
|
18
18
|
See also 'down' and 'frame'.
|
19
19
|
HELP
|
20
20
|
|
21
|
-
ALIASES = %w(u)
|
22
21
|
CATEGORY = 'stack'
|
23
22
|
MAX_ARGS = 1 # Need at most this many
|
24
23
|
NEED_STACK = true
|
@@ -0,0 +1,120 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
# Copyright (C) 2013 Rocky Bernstein <rockyb@rubyforge.net>
|
3
|
+
|
4
|
+
# Part of Trepan::CmdProcess to handle command completion
|
5
|
+
require_relative '../app/complete'
|
6
|
+
require_relative 'virtual'
|
7
|
+
|
8
|
+
class Trepan::CmdProcessor < Trepan::VirtualCmdProcessor
|
9
|
+
|
10
|
+
attr_reader :leading_str # leading part of string. Used in
|
11
|
+
# command completion
|
12
|
+
|
13
|
+
# Handle initial completion. We draw from the commands, aliases,
|
14
|
+
# and macros for completion. However we won't include aliases which
|
15
|
+
# are prefixes of other commands.
|
16
|
+
def complete(str, last_token)
|
17
|
+
@leading_str = str
|
18
|
+
next_blank_pos, token = Trepan::Complete.next_token(str, 0)
|
19
|
+
return [''] if token.empty? && !last_token.empty?
|
20
|
+
match_pairs = Trepan::Complete.complete_token_with_next(@commands,
|
21
|
+
token)
|
22
|
+
match_hash = {}
|
23
|
+
match_pairs.each do |pair|
|
24
|
+
match_hash[pair[0]] = pair[1]
|
25
|
+
end
|
26
|
+
alias_pairs = Trepan::Complete.
|
27
|
+
complete_token_filtered_with_next(@aliases, token, match_hash,
|
28
|
+
@commands)
|
29
|
+
match_pairs += alias_pairs
|
30
|
+
|
31
|
+
macro_pairs = Trepan::Complete.
|
32
|
+
complete_token_filtered_with_next(@macros, token, match_hash,
|
33
|
+
@commands)
|
34
|
+
match_pairs += macro_pairs
|
35
|
+
|
36
|
+
if str[next_blank_pos..-1].empty?
|
37
|
+
return match_pairs.map{|pair| pair[0]}.sort
|
38
|
+
else
|
39
|
+
alias_pairs.each do |pair|
|
40
|
+
match_hash[pair[0]] = pair[1]
|
41
|
+
end
|
42
|
+
end
|
43
|
+
if match_pairs.size > 1
|
44
|
+
# FIXME: figure out what to do here.
|
45
|
+
# Matched multiple items in the middle of the string
|
46
|
+
# We can't handle this so do nothing.
|
47
|
+
return []
|
48
|
+
# return match_pairs.map do |name, cmd|
|
49
|
+
# ["#{name} #{args[1..-1].join(' ')}"]
|
50
|
+
# end
|
51
|
+
end
|
52
|
+
# match_pairs.size == 1
|
53
|
+
next_complete(str, next_blank_pos, match_pairs[0][1], last_token)
|
54
|
+
end
|
55
|
+
|
56
|
+
def next_complete(str, next_blank_pos, cmd, last_token)
|
57
|
+
next_blank_pos, token = Trepan::Complete.next_token(str, next_blank_pos)
|
58
|
+
return [] if token.empty? && !last_token.empty?
|
59
|
+
|
60
|
+
if cmd.respond_to?(:complete_token_with_next)
|
61
|
+
match_pairs = cmd.complete_token_with_next(token)
|
62
|
+
return [] if match_pairs.empty?
|
63
|
+
if str[next_blank_pos..-1].rstrip.empty? &&
|
64
|
+
(token.empty? || token == last_token)
|
65
|
+
return match_pairs.map { |completion, junk| completion }
|
66
|
+
else
|
67
|
+
if match_pairs.size == 1
|
68
|
+
return next_complete(str, next_blank_pos, match_pairs[0][1],
|
69
|
+
last_token)
|
70
|
+
else
|
71
|
+
# FIXME: figure out what to do here.
|
72
|
+
# Matched multiple items in the middle of the string
|
73
|
+
# We can't handle this so do nothing.
|
74
|
+
return []
|
75
|
+
end
|
76
|
+
end
|
77
|
+
elsif cmd.respond_to?(:complete)
|
78
|
+
matches = cmd.complete(token)
|
79
|
+
return [] if matches.empty?
|
80
|
+
if str[next_blank_pos..-1].rstrip.empty? &&
|
81
|
+
(token.empty? || token == last_token)
|
82
|
+
return matches
|
83
|
+
else
|
84
|
+
# FIXME: figure out what to do here.
|
85
|
+
# Matched multiple items in the middle of the string
|
86
|
+
# We can't handle this so do nothing.
|
87
|
+
return []
|
88
|
+
end
|
89
|
+
else
|
90
|
+
return []
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
|
95
|
+
if __FILE__ == $0
|
96
|
+
|
97
|
+
require_relative 'load_cmds'
|
98
|
+
class Trepan::CmdProcessor
|
99
|
+
def initialize(core, settings={})
|
100
|
+
end
|
101
|
+
end
|
102
|
+
|
103
|
+
|
104
|
+
cmdproc = Trepan::CmdProcessor.new(nil)
|
105
|
+
|
106
|
+
def cmdproc.errmsg(mess)
|
107
|
+
puts "** #{mess}"
|
108
|
+
end
|
109
|
+
|
110
|
+
def cmdproc.msg(mess)
|
111
|
+
puts mess
|
112
|
+
end
|
113
|
+
|
114
|
+
cmddir = File.join(File.dirname(__FILE__), 'command')
|
115
|
+
cmdproc.instance_variable_set('@settings', {})
|
116
|
+
cmdproc.load_cmds_initialize
|
117
|
+
p cmdproc.complete("d", 'd')
|
118
|
+
p cmdproc.complete("sho d", 'd')
|
119
|
+
p cmdproc.complete('', '')
|
120
|
+
end
|
data/processor/default.rb
CHANGED
@@ -1,19 +1,23 @@
|
|
1
|
+
# Copyright (C) 2013 Rocky Bernstein <rockyb@rubyforge.net>
|
1
2
|
require 'rubygems'; require 'require_relative'
|
2
3
|
require_relative '../app/default' # for Trepan::HOME_DIR etc.
|
3
4
|
require_relative 'virtual'
|
4
5
|
class Trepan::CmdProcessor < Trepan::VirtualCmdProcessor
|
5
6
|
|
7
|
+
computed_displaywidth = (ENV['COLUMNS'] || '80').to_i
|
8
|
+
computed_displaywidth = 80 unless computed_displaywidth >= 10
|
9
|
+
|
6
10
|
DEFAULT_SETTINGS = {
|
7
11
|
:abbrev => true, # Allow abbreviations of debugger commands?
|
8
12
|
:autoeval => true, # Ruby eval non-debugger commands
|
9
13
|
:autoirb => false, # Go into IRB in debugger command loop
|
10
|
-
:autolist => false, # Run 'list'
|
11
|
-
|
14
|
+
:autolist => false, # Run 'list'
|
15
|
+
|
12
16
|
:basename => false, # Show basename of filenames only
|
13
|
-
:callstyle => :last, #
|
17
|
+
:callstyle => :last, #
|
14
18
|
:confirm => true, # Confirm potentially dangerous operations?
|
15
|
-
:different => 'nostack', # stop *only* when different position?
|
16
|
-
|
19
|
+
:different => 'nostack', # stop *only* when different position?
|
20
|
+
|
17
21
|
:debugdbgr => false, # Debugging the debugger
|
18
22
|
:debugexcept => true, # Internal debugging of command exceptions
|
19
23
|
:debugmacro => false, # debugging macros
|
@@ -26,14 +30,14 @@ class Trepan::CmdProcessor < Trepan::VirtualCmdProcessor
|
|
26
30
|
# nil or -1 means compute value. 0
|
27
31
|
# means hide none. Less than 0 means show
|
28
32
|
# all stack entries.
|
29
|
-
:hightlight => false, # Use terminal highlight?
|
30
|
-
|
31
|
-
:maxlist => 10, # Number of source lines to list
|
33
|
+
:hightlight => false, # Use terminal highlight?
|
34
|
+
|
35
|
+
:maxlist => 10, # Number of source lines to list
|
32
36
|
:maxstack => 10, # backtrace limit
|
33
37
|
:maxstring => 150, # Strings which are larger than this
|
34
38
|
# will be truncated to this length when
|
35
39
|
# printed
|
36
|
-
:maxwidth =>
|
40
|
+
:maxwidth => computed_displaywidth,
|
37
41
|
:prompt => 'trepan8', # core part of prompt. Additional info like
|
38
42
|
# debug nesting and thread name is fixed
|
39
43
|
# and added on.
|